相关疑难解决方法(0)

C#后台线程如何告诉UI线程它已完成某些操作?

脚本

假设您有一个C#WinForms应用程序进行一些数据处理.您有一个方法可以从UI线程调用的数据库中检索数据.然后运行后台线程来执行此任务.您希望UI继续执行其操作,而不是被锁定和无响应.

如何让后台线程运行并进行处理,然后在返回结果时自动提醒UI线程?

c# multithreading

17
推荐指数
2
解决办法
2万
查看次数

WPF异步任务锁定UI

我知道我错过了一些愚蠢的东西,"StartProcess"方法使得用户界面没有反应,没有大量的谷歌搜索和教程让我得到答案.

这是我的代码:

    public MainWindow()
    {
        InitializeComponent();
        txtBlock.Text = "Testing";
        Initialize();
    }

    public void Initialize()
    {
        uiScheduler = TaskScheduler.FromCurrentSynchronizationContext();

        StartProcess();
    }

    async void StartProcess()
    {
         Task<int> result = Task.Factory.StartNew(() =>
        {
            txtBlock.Text += ("\n starting updater");
            while (true)
            {
                Thread.Sleep(3000);
            }
            return 0;
        }, CancellationToken.None, TaskCreationOptions.LongRunning, uiScheduler);
    }
Run Code Online (Sandbox Code Playgroud)

一些背景:我正在构建一个必须每5分钟轮询一次数据库的应用程序,并用用户的待办事项列表更新UI,因此是while(true)循环.该应用程序必须在其整个生命周期内连续轮询数据库.

wpf async-await

0
推荐指数
1
解决办法
1230
查看次数

标签 统计

async-await ×1

c# ×1

multithreading ×1

wpf ×1