Task Self moniter
来源:互联网 发布:软件分享论坛 编辑:程序博客网 时间:2024/06/12 05:20
public class Program
{
readonly static object lockobj = new object();
static void Main(string[] args)
{
log4net.Config.XmlConfigurator.Configure();
int c = 0;
var makeIds = new List<int>();
using (var db = new food_data_prod_imageQualityEntities())
{
makeIds = db.Make.Where(m => m.IsHide == false && m.UserId != -1).Select(m => m.Id).ToList();
}
var allC = makeIds.Count();
var task = new Task(() =>
{
while (c < allC)
{
Console.WriteLine("Left:" + (allC - c));
Task.Delay(1000).Wait();
}
}, TaskCreationOptions.LongRunning);
task.Start();
foreach (var id in makeIds)
{
using (var db = new food_data_prod_imageQualityEntities())
{
var make = db.Make.First(m => m.Id == id);
var imageUrl = make.ImageUrl;
var hideFlag = CheckQualityToHide(GetImageInfo, imageUrl, id).Result;
make.IsHideByImageQuality = hideFlag;
db.SaveChanges();
lock (lockobj)
{
c = c + 1;
}
}
}
}
public static async Task<bool?> CheckQualityToHide(Func<string, Tuple<int, int, int>> getImageInfo, string imageUrl, int id)
{
log4net.ILog log = log4net.LogManager.GetLogger("logger-name");
try
{
var imageInfo = getImageInfo(imageUrl);
if (imageInfo.Item1 > 1 && imageInfo.Item2 > 1 && imageInfo.Item3 > 10)
{
return false;
}
else
{
return true;
}
}
catch (Exception ex)
{
log.Error("Id:" + id + ",Ex:" + ex);
return null;
}
}
public static Tuple<int, int, int> GetImageInfo(string imageUrl)
{
using (var client = new WebClient())
{
var dataResult = client.OpenRead(imageUrl);
Image pic = Image.FromStream(dataResult);
var width = pic.Width;
var height = pic.Height;
return new Tuple<int, int, int>(width, height, width * height);
}
}
}
{
readonly static object lockobj = new object();
static void Main(string[] args)
{
log4net.Config.XmlConfigurator.Configure();
int c = 0;
var makeIds = new List<int>();
using (var db = new food_data_prod_imageQualityEntities())
{
makeIds = db.Make.Where(m => m.IsHide == false && m.UserId != -1).Select(m => m.Id).ToList();
}
var allC = makeIds.Count();
var task = new Task(() =>
{
while (c < allC)
{
Console.WriteLine("Left:" + (allC - c));
Task.Delay(1000).Wait();
}
}, TaskCreationOptions.LongRunning);
task.Start();
foreach (var id in makeIds)
{
using (var db = new food_data_prod_imageQualityEntities())
{
var make = db.Make.First(m => m.Id == id);
var imageUrl = make.ImageUrl;
var hideFlag = CheckQualityToHide(GetImageInfo, imageUrl, id).Result;
make.IsHideByImageQuality = hideFlag;
db.SaveChanges();
lock (lockobj)
{
c = c + 1;
}
}
}
}
public static async Task<bool?> CheckQualityToHide(Func<string, Tuple<int, int, int>> getImageInfo, string imageUrl, int id)
{
log4net.ILog log = log4net.LogManager.GetLogger("logger-name");
try
{
var imageInfo = getImageInfo(imageUrl);
if (imageInfo.Item1 > 1 && imageInfo.Item2 > 1 && imageInfo.Item3 > 10)
{
return false;
}
else
{
return true;
}
}
catch (Exception ex)
{
log.Error("Id:" + id + ",Ex:" + ex);
return null;
}
}
public static Tuple<int, int, int> GetImageInfo(string imageUrl)
{
using (var client = new WebClient())
{
var dataResult = client.OpenRead(imageUrl);
Image pic = Image.FromStream(dataResult);
var width = pic.Width;
var height = pic.Height;
return new Tuple<int, int, int>(width, height, width * height);
}
}
}
0 0
- Task Self moniter
- apache service moniter
- Tcp/ip moniter
- Lock,Moniter,Mutex.How to use it
- Android Device Moniter部分问题的解决办法:
- self
- self
- self
- self
- SELF
- self
- self
- self
- self
- TASK
- Task
- Task
- TASK
- Android Settings app内存泄露问题
- 多线程 NSThread GCD NSOperation 基础篇
- HDU 2023 求平均成绩(数学统计题)
- C#中处理读写Ini文件
- Android动画效果的强悍框架,总有你想要的,赶快围观
- Task Self moniter
- 好书推荐--感性
- 安卓自定义View进阶 - 贝塞尔曲线
- ubuntu 14.04 64位编译android版Kodi
- CodeForces - 282A Bit++ (水)
- Why objc_msgSend Must be Written in Assembly
- 多TAB可悬浮头控件
- Android 监听前台后台切换
- ireport/jasprereport studio 导出excel最后有空白行