多线程问题
雨纷纷 2017-07-15 03:30:52 thread = new Thread(new ThreadStart(delegate
{
DoService();
}));
thread.Start();
//
while (!bStop)
{
FileInfo fi = new FileInfo(zfilename);
string[] arr;
string line;
if (fi.Length != 0)
{
strem = new StreamReader(zfilename, Encoding.Default);
while ((line = strem.ReadLine()) != null)
{
strx = line.ToString();
if (strx != "")
{
arr = strx.Split(',');
string aa = arr[0].ToString();
string bb = arr[1].ToString();
DateTime dt1 = Convert.ToDateTime(aa);
DateTime dt2 = Convert.ToDateTime(bb);
float date = DateDiff(dt2, dt1);//计算时间差
TimeSpan am = DateTime.Parse(aa).TimeOfDay;
TimeSpan pm = DateTime.Parse(bb).TimeOfDay;
string t1 = DateTime.Now.Hour.ToString() + ":" + DateTime.Now.Minute.ToString();
DateTime t2 = Convert.ToDateTime(t1);
TimeSpan t3 = t2.TimeOfDay;
// if (System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetDayName(DateTime.Now.DayOfWeek) == "星期日")//每到星期一自动清理listMessage
// {
if (DateTime.Now.ToString("HH:mm").IndexOf("10:36") >= 0 || DateTime.Now.ToString("HH:mm").IndexOf("19:36") >= 0 || DateTime.Now.ToString("HH:mm").IndexOf("23:36") >= 0)
{
this.BeginInvoke(clearlist);//清除listMessage
}
// }
if (t3>am&&t3<pm)
{
startup();
this.BeginInvoke(upbtn, "开始接收服务");
this.BeginInvoke(grd);
startcount = 0;
Thread.Sleep(Convert.ToInt32(date)*60*1000);//设置休眠时间
}
else
{
/* startcount++;
if(startcount==1)
{
startup();
}*/
bStop = false;
this.BeginInvoke(upbtn, "停止接收服务");
if (textBox1.Text != null)
{
System.Threading.Thread.Sleep(1000 * Convert.ToInt32(textBox1.Text));
}
else
{
System.Threading.Thread.Sleep(1000 * Convert.ToInt32(sztime1));
}
WakeUp();///耗时操作
}
}
}
strem.Close();
strem.Dispose();
}
这样会界面卡一会 怎么才能不卡