码迷,mamicode.com
首页 > 编程语言 > 详细

winfrom 多线程 并发 和定时任务

时间:2018-09-19 16:26:45      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:sum   null   thread   new   string   static   star   main   nta   

static void Main(string[] args)
{


//多个线程修改同一个值,使用lock锁解决并发
for (int i = 0; i < 4; i++)
{
Task.Factory.StartNew(ThreadMethod2);
}
//Thread.Sleep(2000);
Console.ReadKey();
}

public static int Number = 1;
public static void ThreadMethod2()
{
while (true)
{
lock (typeof(Program))
{
//Number++;
//Console.WriteLine("当前线程:{0},Number={1}", Thread.CurrentThread.ManagedThreadId, Number);
//Thread.Sleep(500);
for (int i =1; i <= 10; i++)
{
Number = i;
Console.WriteLine("当前线程:{0},Number={1}", Thread.CurrentThread.ManagedThreadId, Number);
Thread.Sleep(200);
}
}
}
}

 

 

/// <summary>
/// 定时执行
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void timer1_Tick(object sender, EventArgs e)
{
this.timer1.Stop();
#region
string sql = @"SELECT
A.GUID,
A.BILL_CODE,
A.STATUS,
A.TYPE,
D.PATH,
CF.TAG_ALIAS,
A.REPORT_NAME,
D.LABLE_NAME
FROM TAB_REPORT_PRINT A
LEFT JOIN TAB_REPORT_LABEL D
ON A.REPORT_NAME = D.LABLE_NAME
LEFT JOIN TAB_TAG_CONF CF
ON D.LABLE_NAME = CF.TAG_ALIAS
LEFT JOIN TAB_TAG_TYPE TE
ON CF.GUID = TE.TAG_CODE
WHERE 1 = 1
AND STATUS = 0
AND ROWNUM <= 100
ORDER BY A.INSERT_DATE ASC";
#endregion
dt_data = SelectData(sql).Tables[0];

if (dt_data != null && dt_data.Rows.Count > 0)
{
foreach (DataRow dr in dt_data.Rows)
{
if (!string.IsNullOrWhiteSpace(dr["PATH"].ToString()))
{
LoadTemplate(dr);
}
}
}
this.timer1.Start();
}

winfrom 多线程 并发 和定时任务

标签:sum   null   thread   new   string   static   star   main   nta   

原文地址:https://www.cnblogs.com/yangpeng-jingjing/p/9674642.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!