我要用匿名方法创建一个BackgroundWorker。我写了以下代码:BackgroundWorkerbgw=newBackgroundWorker();bgw.DoWork+=newDoWorkEventHandler(()=>{inti=0;foreach(variteminquery2){........}});但是Delegate'System.ComponentModel.DoWorkEventHandler'doesnottake'0'arguments我必须将两个对象传递给匿名方法:objectsender,DoWorkEventArgse你能指导我吗,我该怎么做?谢谢
我通常在表单上有这样的代码:privatevoidPerformLongRunningOperation(){BackgroundWorkerworker=newBackgroundWorker();worker.DoWork+=delegate{//performlongrunningoperationhere};worker.RunWorkerAsync();}这意味着我不会处置BackgroundWorker,而如果我由表单设计者添加它,那么我认为它会被处置。这会导致任何问题吗?声明模块级_saveWorker,然后从表单的dispose方法对其调用Dispose是否更正确?
我通常在表单上有这样的代码:privatevoidPerformLongRunningOperation(){BackgroundWorkerworker=newBackgroundWorker();worker.DoWork+=delegate{//performlongrunningoperationhere};worker.RunWorkerAsync();}这意味着我不会处置BackgroundWorker,而如果我由表单设计者添加它,那么我认为它会被处置。这会导致任何问题吗?声明模块级_saveWorker,然后从表单的dispose方法对其调用Dispose是否更正确?
这是处理BackGroundWorker的正确方法吗?我不确定在调用.Dispose()之前是否需要删除事件。在RunWorkerCompleted委托(delegate)中调用.Dispose()也可以吗?publicvoidRunProcessAsync(DateTimedumpDate){BackgroundWorkerworker=newBackgroundWorker();worker.RunWorkerCompleted+=newRunWorkerCompletedEventHandler(worker_RunWorkerCompleted);worker.DoWork+=
这是处理BackGroundWorker的正确方法吗?我不确定在调用.Dispose()之前是否需要删除事件。在RunWorkerCompleted委托(delegate)中调用.Dispose()也可以吗?publicvoidRunProcessAsync(DateTimedumpDate){BackgroundWorkerworker=newBackgroundWorker();worker.RunWorkerCompleted+=newRunWorkerCompletedEventHandler(worker_RunWorkerCompleted);worker.DoWork+=
如果我点击两次启动后台程序的按钮,我会收到此错误。ThisBackgroundWorkeriscurrentlybusyandcannotrunmultipletasksconcurrently我怎样才能避免这种情况? 最佳答案 很简单:不要启动BackgroundWorker两次。您可以使用IsBusy属性检查它是否已经在运行,因此只需更改此代码:worker.RunWorkerAsync();为此:if(!worker.IsBusy)worker.RunWorkerAsync();elseMessageBox.Show("Can
如果我点击两次启动后台程序的按钮,我会收到此错误。ThisBackgroundWorkeriscurrentlybusyandcannotrunmultipletasksconcurrently我怎样才能避免这种情况? 最佳答案 很简单:不要启动BackgroundWorker两次。您可以使用IsBusy属性检查它是否已经在运行,因此只需更改此代码:worker.RunWorkerAsync();为此:if(!worker.IsBusy)worker.RunWorkerAsync();elseMessageBox.Show("Can
我正在编写一个重复运行一系列数字IO操作的Windows应用程序。这一系列操作在用户单击“开始”按钮时开始,由后台工作人员在backgroundWorker1_DoWork()中完成。但是,有时我会收到“此后台工作人员当前正忙......”错误消息。我正在考虑在代码中实现以下内容,方法是在开始另一个操作序列之前使用while循环“杀死”后台工作人员:if(backgroundWorker1.IsBusy==true){backgroundWorker1.CancelAsync();while(backgroundWorker1.IsBusy==true){backgroundWorke
我正在编写一个重复运行一系列数字IO操作的Windows应用程序。这一系列操作在用户单击“开始”按钮时开始,由后台工作人员在backgroundWorker1_DoWork()中完成。但是,有时我会收到“此后台工作人员当前正忙......”错误消息。我正在考虑在代码中实现以下内容,方法是在开始另一个操作序列之前使用while循环“杀死”后台工作人员:if(backgroundWorker1.IsBusy==true){backgroundWorker1.CancelAsync();while(backgroundWorker1.IsBusy==true){backgroundWorke
我知道它有3个方法。在我的程序中,我有一个发送消息的方法。通常很晚,程序有时根本不响应按钮按下而发送消息。有时比我预期的晚5秒,程序就会卡住。我想使用一个BackgroundWorker来按预期发送消息,并让程序始终正常运行。我有在按钮处理程序中发送消息的代码。现在我把这个等效代码放在哪里?我希望所有这些仍然可以通过按下按钮来处理。这是合适的处理程序吗?backgroundWorker1.RunWorkerAsync();并在:privatevoidbackgroundWorker1_DoWork(objectsender,DoWorkEventArgse){}我要把我的代码放在按钮处