程序要做一个500次的循环,直到循环中查询到想要的信息,或者次数到了结束。
现在的问题是会非常卡,如果一直没有信息就会一直卡。想用多线程,但搞不懂应该怎么弄、?
让子线程去做这个循环,lock一个code值,然后主线程怎么办呢?再做个循环去一直看这个code值吗????那不还是卡么
现在的问题是会非常卡,如果一直没有信息就会一直卡。想用多线程,但搞不懂应该怎么弄、?
让子线程去做这个循环,lock一个code值,然后主线程怎么办呢?再做个循环去一直看这个code值吗????那不还是卡么
BackgroundWorker 类允许您在单独的专用线程上运行操作。耗时的操作(如下载和数据库事务)在长时间运行时可能会导致用户界面 (UI) 似乎处于停止响应状态。如果您需要能进行响应的用户界面,而且面临与这类操作相关的长时间延迟,则可以使用 BackgroundWorker 类方便地解决问题。
private void button1_Click(object sender, EventArgs e)
{
Thread th = new Thread(aa);
th.Start();
}delegate void somedle();
private void aa()
{
if (this.InvokeRequired)
{
somedle sd = new somedle(aa);
this.Invoke(sd);
return;
}
ShowChar('');
}
public void ShowChar(char ch)
{
lock (this)
{
}