如题,我在winform程序中使用BackgroundWorker控件来处理界面数据,以防止程序出现未响应的状态,并且根据需求,在程序运行的过程中需要一直使用到BackgroundWorker控件进行后台处理,但是,我在界面上,或者其他的弹出窗体上进行切换输入法时,程序会出现未响应而死掉,这是咋回事呀?
解决方案 »
- sqlite.net 中游标的使用
- socket 缓冲区接收一定量数据以后 如何复位
- 新手求教,怎么样从textbox添加数据到dataGridView1
- C#中把一个rectangle对象关联到窗口怎么关联
- vs2008用IE调试C#的问题
- Forms身份验证问题!?
- 怎么样声明方法,GetObject(typeof(MyClass))这样的方法才能去掉typeof关键字呢
- 问一个jav的setTimeout的问题。(可能是语法方面概念混淆)
- uadata 通用方法
- c#的一些问题
- 通过代码选中 Tool里的Option 菜单 【Visual Studio Shell 开发】
- 不懂啊!急急急。。。。。
不过忘记解决方法了
和线程有关 是不是用到了 timer的定时执行之类
{
#region 判断时间是否大于设定的时间。进行更新
if (this.time.Hour >= MethodOperation.Time.Hour && this.time.Minute >= MethodOperation.Time.Minute)
{
System.GC.Collect();
if (!backgroundWorker2.IsBusy)//判断当前更新的线程是否处于忙碌状态
{
backgroundWorker2.RunWorkerAsync();//不是忙碌状态,则启动线程,更新数据
}
this.timer2.Stop();
}
#endregion
}
但是我时时更新数据不是用timer,是在这个事件进行判断的 void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)//结束
{
#region 异步结束后
MethodOperation.FlushMemory();//释放
if (e.Cancelled == true)
{
backgroundWorker1.CancelAsync();//取消暂停
}
else {
AddFunction(); //调用判断终端链接状态的函数
backgroundWorker1.RunWorkerAsync(); //继续执行异步
}
#endregion
}
换个 Thread.Timer 试试