小编Bra*_*onm的帖子

C#后台工作者除了我自己以外没有触发任何电脑上的dowork事件

在我的一个应用程序中,我遇到了一个非常奇怪的背景工作者问题.我最近稍微修改了一些GUI修复程序,但现在当另一台PC上的某人运行.exe或安装我的OneClick部署时,后台工作程序不会进入dowork事件.两个版本之间的逻辑没有改变.我做了一个比较,除了添加更多的错误记录,没有任何改变.

我已经在dowork事件中包含了消息框和断点,但除了在我自己的PC上之外,它从未进入任何地方.即使我远程调试它也不会进入DoWork事件

有什么建议?

按钮单击甚至调用runworkerasync事件

private void ScanButton_Click_1(object sender, RoutedEventArgs e)
    {

        Scan = new BackgroundWorker();
        Scan.WorkerReportsProgress = true;
        Scan.DoWork += new DoWorkEventHandler(Scan_DoWork);
        Scan.ProgressChanged += new ProgressChangedEventHandler(Scan_ProgressChanged);
        Scan.RunWorkerCompleted += new RunWorkerCompletedEventHandler(Scan_RunWorkerCompleted);
        Scan.RunWorkerAsync();
    }
Run Code Online (Sandbox Code Playgroud)

下面是运行DoWork事件的代码.我已经删除了它为简单起见所做的其他功能.它所做的就是运行一个函数,该函数返回一个字符串并将其放在名为scanresults的列表中.

private BackgroundWorker Scan;

    public void Scan_DoWork(object sender, DoWorkEventArgs e)
    {

        System.Windows.Forms.MessageBox.Show("Inside the DoWork");

        BackgroundWorker bw = sender as BackgroundWorker;

        float percentageDone = 0.0F;

        ScanResults = new List<string>();

        try
        {

            System.Windows.Forms.MessageBox.Show("Doing first scan check");

            ScanResults.Add(Functions.LocalComputerName());
            percentageDone = ((1 / 1f) * 100f);
            bw.ReportProgress((int)percentageDone);

        }
        catch (Exception ex)
        { …
Run Code Online (Sandbox Code Playgroud)

c# events eventtrigger backgroundworker

6
推荐指数
1
解决办法
8637
查看次数

标签 统计

backgroundworker ×1

c# ×1

events ×1

eventtrigger ×1