来自BackgroundWorker等待用户输入的对话框

本文关键字:对话框 输入 用户 BackgroundWorker 等待 来自 | 更新日期: 2023-09-27 18:03:17

我可以从BackgroundWorker打开对话框并暂停它直到用户决定吗?

MyWorker = new System.ComponentModel.BackgroundWorker();
MyWorker.DoWork += new System.ComponentModel.DoWorkEventHandler(CopyWorker_DoWork);
MyWorker.RunWorkerAsync();
private void MyWorker_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
{
    int i=0;
    while ((i) < collection.Count())
    {
       cListEntry item = collection[i];
       if (item.conflicted ==true) {
            Dispatcher.BeginInvoke(new Action(() =>
            {
                var dialog = new WindowConflict();
                //Open dialog and wait for user action
                if (dialog.ShowDialog() == true)
                {
                    item.level = dialog.Response;
                } 

来自BackgroundWorker等待用户输入的对话框

您应该使用invoke而不是begininvoke, begininvoke允许任务继续运行,但是您希望它等待。