我是一名能够协助翻译的助手。以下为您翻译的内容:
我有一个类,当某些操作的状态发生改变时,应向用户显示一些消息,如下所示:
public static class AutoUpdater
{
public static async void AutoUpdateCheck()
{
UpdaterStatus.CurrentUpdateStatus = await UpdaterLogic.CheckForUpdateAsync();
}
public static void OnStatusChanged()
{
switch (UpdaterStatus.CurrentStatus)
{
case UpdateStatus.UpdateFound:
{
Message ToAdd = new Message("some params"); //Exception here
MessagesManager.AddNewMessage(ToAdd);
break;
}
//some other cases
}
}
当应用程序启动时,我会订阅以下事件:
AutoUpdater
。UpdaterStatus.EventStatusChanged += (sender, args) => { AutoUpdater.OnStatusChanged(); };
我得到的异常是:“调用线程必须是STA,因为许多UI组件需要这个”。
但是,我不能自己创建STA线程,然后将新创建的消息添加到其父控件中,因为这样我会得到一个异常,说“该对象属于另一个线程”。
有没有什么解决方法?