本文整理汇总了C#中System.Action.IsNotNull方法的典型用法代码示例。如果您正苦于以下问题:C# Action.IsNotNull方法的具体用法?C# Action.IsNotNull怎么用?C# Action.IsNotNull使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Action
的用法示例。
在下文中一共展示了Action.IsNotNull方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DataBulkCopy
/// <summary>
/// Oracle大数据复制
/// </summary>
/// <param name="dt">数据源 dt.TableName一定要和数据库表名对应</param>
/// <param name="dbkey">数据库</param>
/// <param name="options">选项 默认Default</param>
/// <param name="isTran">是否使用事务 默认false</param>
/// <param name="timeout">超时时间7200 2小时</param>
/// <param name="batchSize">每一批次中的行数</param>
/// <param name="error">错误处理</param>
/// <returns>true/false</returns>
public bool DataBulkCopy(DataTable dt, string dbkey = "", BulkCopyOptions options = BulkCopyOptions.Default, bool isTran = false, int timeout = 7200, int batchSize = 10000, Action<Exception> error = null) {
if (Data.Pool(dbkey).DBType != "OleDb") return false;
using (OleDbConnection connection = new OleDbConnection(Data.Pool(dbkey).ConnString)) {
connection.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter("select * from " + dt.TableName + " where 1=0", connection);
OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);
int rowcount = dt.Rows.Count;
for (int n = 0; n < rowcount; n++) {
dt.Rows[n].SetAdded();
}
adapter.UpdateBatchSize = batchSize;
try {
adapter.Update(dt);
} catch(Exception ex) {
if (error.IsNotNull()) error(ex);
return false;
}
}
return true;
}
示例2: Retry
/// <summary>
/// 重试方法
/// </summary>
/// <param name="action">方法</param>
/// <param name="numRetries">重试次数</param>
/// <param name="retryTimeout">延时多长时间后重试,单位毫秒</param>
/// <param name="throwIfFail">经过几轮重试操作后依然发生异常时是否将异常抛出</param>
/// <param name="onFailureAction">操作失败执行的方法</param>
/// <returns></returns>
public static void Retry(this Action action, int numRetries, int retryTimeout, bool throwIfFail, Action<Exception> onFailureAction) {
if (action.IsNull()) throw new ArgumentNullException("action");
numRetries--;
do {
bool istrue = false;
try {
action();
istrue = true;
} catch (Exception ex) {
istrue = false;
if (onFailureAction.IsNotNull()) onFailureAction(ex);
if (numRetries <= 0 && throwIfFail) throw ex;
}
if (retryTimeout > 0 && !istrue) Thread.Sleep(retryTimeout);
} while (numRetries-- > 0);
}
示例3: CutImageByWidthHeight
/// <summary>
/// 按宽X长比例切图 并补白
/// </summary>
/// <param name="imagePath">源图地址</param>
/// <param name="savePath">新图地址</param>
/// <param name="newWidth">宽度</param>
/// <param name="newHeight">高度</param>
/// <param name="error">出错时执行</param>
/// <param name="bgcolor">填充背景色</param>
/// <returns>成功true失败false</returns>
public static bool CutImageByWidthHeight(string imagePath, string savePath, int newWidth, int newHeight, Color bgcolor, Action<Exception> error = null) {
//原始图片(获取原始图片创建对象,并使用流中嵌入的颜色管理信息)
System.Drawing.Image originalImage = System.Drawing.Image.FromFile(imagePath);
int ow = originalImage.Width;//原始宽度
int oh = originalImage.Height;//原始高度
Size toSize = ResizeSite(new Size(newWidth, newHeight), new Size(ow, oh));
int towidth = toSize.Width;//原图片缩放后的宽度
int toheight = toSize.Height;//原图片缩放后的高度
int x = 0;
int y = 0;
x = (newWidth - towidth) / 2;
y = (newHeight - toheight) / 2;
//新建一个bmp图片
System.Drawing.Image bitmap = new System.Drawing.Bitmap(towidth, toheight);
//新建一个画板
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);
//设置高质量插值法
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
//设置高质量,低速度呈现平滑程度
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
//清空画布并以透明背景色填充
g.Clear(bgcolor);
//在指定位置并且按指定大小绘制原图片的指定部分
g.DrawImage(originalImage, new System.Drawing.Rectangle(0, 0, towidth, toheight),
new System.Drawing.Rectangle(0, 0, ow, oh),
System.Drawing.GraphicsUnit.Pixel);
//--------------------------------------------------------------------------------
//新建一个bmp图片2
System.Drawing.Image bitmap2 = new System.Drawing.Bitmap(newWidth, newHeight);
//新建一个画板2
System.Drawing.Graphics g2 = System.Drawing.Graphics.FromImage(bitmap2);
//设置高质量插值法
g2.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
//设置高质量,低速度呈现平滑程度
g2.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
//清空画布并以透明背景色填充
g2.Clear(bgcolor);
g2.DrawImageUnscaled(bitmap, new Point(x, y));
try {
bitmap2.Save(savePath, originalImage.RawFormat);
return true;
} catch (System.Exception ex) {
if (error.IsNotNull()) error(ex);
return false;
} finally {
originalImage.Dispose();
bitmap.Dispose();
bitmap2.Dispose();
g2.Dispose();
g.Dispose();
}
}
示例4: CutImageCustomMin
/// <summary>
/// 按宽X长比例切图
/// </summary>
/// <param name="imagePath">源图地址</param>
/// <param name="savePath">新图地址</param>
/// <param name="cutWidth">宽度</param>
/// <param name="cutHeight">高度</param>
/// <param name="error">出错时执行</param>
/// <returns>成功true失败false</returns>
public static bool CutImageCustomMin(string imagePath, string savePath, int cutWidth, int cutHeight, Action<Exception> error = null) {
try {
System.Drawing.Image objImage = System.Drawing.Image.FromFile(imagePath);
float x = objImage.Width;
float y = objImage.Height;
float xPercent = x / cutWidth;
float yPercent = y / cutHeight;
int width = 0, height = 0;
if (xPercent < yPercent) {
width = (int)((x * cutHeight) / y);
height = cutHeight;
} else {
width = cutWidth;
height = (int)((cutWidth * y) / x);
}
System.Drawing.Image newimage = new Bitmap(objImage.Width, objImage.Height, PixelFormat.Format32bppRgb);
Graphics g = Graphics.FromImage(newimage);
g.DrawImage(objImage, 0, 0, objImage.Width, objImage.Height);
g.Dispose();
System.Drawing.Image thumbImage = newimage.GetThumbnailImage(width, height, null, IntPtr.Zero);
thumbImage.Save(savePath, objImage.RawFormat);
objImage.Dispose();
newimage.Dispose();
thumbImage.Dispose();
FileStream fs = new FileStream(savePath, FileMode.Open, FileAccess.Read);
fs.Close();
return true;
} catch (Exception ex) {
if (error.IsNotNull()) error(ex);
return false;
}
}
示例5: CutImageCustom
/// <summary>
/// 按宽X长比例切图
/// </summary>
/// <param name="imagePath">源图地址</param>
/// <param name="savePath">新图地址</param>
/// <param name="cutWidth">宽度</param>
/// <param name="cutHeight">高度</param>
/// <param name="error">出错时执行</param>
/// <returns>成功true失败false</returns>
public static bool CutImageCustom(string imagePath, string savePath, int cutWidth, int cutHeight, Action<Exception> error = null) {
try {
System.Drawing.Image objImage = System.Drawing.Image.FromFile(imagePath);
float x = objImage.Width;
float y = objImage.Height;
float xPercent = x / cutWidth;
float yPercent = y / cutHeight;
int width = 0, height = 0;
if (xPercent < yPercent) {
width = (int)((x * cutHeight) / y);
height = cutHeight;
} else {
width = cutWidth;
height = (int)((cutWidth * y) / x);
}
Bitmap newimage = new Bitmap(width, height, PixelFormat.Format32bppRgb);
newimage.SetResolution(72f, 72f);
Graphics gdiobj = Graphics.FromImage(newimage);
gdiobj.CompositingQuality = CompositingQuality.HighQuality;
gdiobj.SmoothingMode = SmoothingMode.HighQuality;
gdiobj.InterpolationMode = InterpolationMode.HighQualityBicubic;
#if !MONO40
gdiobj.PixelOffsetMode = PixelOffsetMode.HighQuality;
#endif
gdiobj.FillRectangle(new SolidBrush(Color.White), 0, 0, width, height);
Rectangle destrect = new Rectangle(0, 0, width, height);
gdiobj.DrawImage(objImage, destrect, 0, 0, objImage.Width, objImage.Height, GraphicsUnit.Pixel);
gdiobj.Dispose();
System.Drawing.Imaging.EncoderParameters ep = new System.Drawing.Imaging.EncoderParameters(1);
ep.Param[0] = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, (long)100);
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();
ImageCodecInfo ici = null;
foreach (ImageCodecInfo codec in codecs) {
if (codec.MimeType == "image/jpeg") { ici = codec; }
}
if (ici.IsNotNull()) newimage.Save(savePath, ici, ep); else newimage.Save(savePath, objImage.RawFormat);
objImage.Dispose();
newimage.Dispose();
FileStream fs = new FileStream(savePath, FileMode.Open, FileAccess.Read);
fs.Close();
return true;
} catch (Exception ex) {
if (error.IsNotNull()) error(ex);
return false;
}
}
示例6: CutImageSquare
/// <summary>
/// 将图片剪切到一个正方形
/// </summary>
/// <param name="imagePath">源图地址</param>
/// <param name="savePath">新图地址</param>
/// <param name="square">正方形边长</param>
/// <param name="error">出错时执行</param>
/// <returns>成功true失败false</returns>
public static bool CutImageSquare(string imagePath, string savePath, int square, Action<Exception> error = null) {
try {
int width = square;
int height = square;
int cutWidth = square;
int cutHeight = square;
System.Drawing.Image objImage = System.Drawing.Image.FromFile(imagePath);
if (objImage.Width >= objImage.Height) {
cutWidth = objImage.Height;
cutHeight = objImage.Height;
} else {
cutWidth = objImage.Width;
cutHeight = objImage.Width;
}
System.Drawing.Image newimage = new Bitmap(cutWidth, cutHeight, PixelFormat.Format32bppRgb);
Graphics g = Graphics.FromImage(newimage);
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
Rectangle destRect = new Rectangle(0, 0, cutWidth, cutHeight);
Rectangle srcRect = new Rectangle(0, 0, cutWidth, cutHeight);
GraphicsUnit units = GraphicsUnit.Pixel;
g.DrawImage(objImage, destRect, srcRect, units);
g.Dispose();
System.Drawing.Image thumbImage = newimage.GetThumbnailImage(width, height, null, IntPtr.Zero);
thumbImage.Save(savePath, objImage.RawFormat);
objImage.Dispose();
newimage.Dispose();
thumbImage.Dispose();
FileStream fs = new FileStream(savePath, FileMode.Open, FileAccess.Read);
fs.Close();
return true;
} catch (Exception ex) {
if (error.IsNotNull()) error(ex);
return false;
}
}
示例7: ForEachFileRecuresive
public static void ForEachFileRecuresive(this DirectoryInfo directoryInfo, string pattern, Action<FileInfo> actionOnFile, Action<DirectoryInfo> actionOnDirectory = null)
{
if (!directoryInfo.Exists)
{
throw new DirectoryNotFoundException(directoryInfo.FullName);
}
if (actionOnDirectory.IsNotNull())
{
actionOnDirectory(directoryInfo);
}
var subDirectories = directoryInfo.GetDirectories();
foreach (var subDirectory in subDirectories)
{
ForEachFileRecuresive(subDirectory, pattern, actionOnFile,actionOnDirectory);
}
var files = directoryInfo.GetFiles(pattern);
foreach (var fileInfo in files)
{
actionOnFile(fileInfo);
}
}
示例8: DataBulkCopy
/// <summary>
/// SqlServer大数据复制
/// </summary>
/// <param name="dr">数据源</param>
/// <param name="tableName">对应的表名</param>
/// <param name="dbkey">数据库</param>
/// <param name="options">选项 默认Default</param>
/// <param name="isTran">是否使用事务 默认false</param>
/// <param name="timeout">超时时间7200 2小时</param>
/// <param name="batchSize">每一批次中的行数</param>
/// <param name="error">错误处理</param>
/// <returns>true/false</returns>
public bool DataBulkCopy(IDataReader dr, string tableName, string dbkey = "", BulkCopyOptions options = BulkCopyOptions.Default, bool isTran = false, int timeout = 7200, int batchSize = 10000, Action<Exception> error = null) {
if (Data.Pool(dbkey).DBType != "SqlServer") return false;
SqlTransaction tran = null;
using(SqlConnection conn = new SqlConnection(Data.Pool(dbkey).ConnString)) {
if (isTran) tran = conn.BeginTransaction();
using (System.Data.SqlClient.SqlBulkCopy bc = new System.Data.SqlClient.SqlBulkCopy(conn, ((int)options).ToEnum<SqlBulkCopyOptions>(), tran)) {
bc.BulkCopyTimeout = timeout;
bc.BatchSize = batchSize;
bc.DestinationTableName = tableName;
try {
bc.WriteToServer(dr);
if (isTran) tran.Commit();
} catch(Exception ex) {
if (isTran) tran.Rollback();
if (error.IsNotNull()) error(ex);
return false;
}
}
}
return true;
}
示例9: setTimeout
/// <summary>
/// 定时器
/// </summary>
/// <param name="run">执行函数</param>
/// <param name="interval">计时器 1000为1秒</param>
/// <param name="degree">跌代次数</param>
/// <param name="error">连续返回false时执行</param>
private static void setTimeout(Func<int, bool> run, int interval = 1000, int degree = 60, Action error = null) {
int _degree = 0;
System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();
Action end = () => {
timer.Enabled = false;
timer.Dispose();
};
timer.Interval = interval;
timer.Enabled = true;
timer.Tick += (s, e) => {
if (degree < 1) {
_degree++;
if (run(_degree)) end();
} else {
_degree++;
if (_degree >= degree) {
end();
if (!run(_degree) && error.IsNotNull()) error();
} else if (run(_degree)) end();
}
};
}
示例10: RaiseInterceptionAspect
public void RaiseInterceptionAspect(Action action)
{
if (action.IsNotNull()) {
action();
}
}