第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

c#wpf-多線程

c#wpf-多線程

C#
白衣非少年 2021-05-04 13:16:02
我正在使用 C# wpf 并想拍攝一張相機照片,然后在完成事件調用后 - 在 MainWindow 中更改一些控件。問題是事件是在與主線程不同的線程中調用的,并且要運行我的NextState函數(shù)(更改一些控件),它必須是主線程(否則我得到帶有警告的消息框,什么也沒有發(fā)生)。這是我的代碼:public partial class PhotoCapture : UserControl{    private bool ready;    private System.Timers.Timer timer;    private readonly Object lockObj = new Object();    public PhotoCapture(PhotoCaptureState photoCaptureState)    {        InitializeComponent();        ready = false;        PictureManager.LoadCompleted += PictureManager_LoadCompleted;        CameraManager.TakePicture();        timer = new System.Timers.Timer(200);        timer.Elapsed += new System.Timers.ElapsedEventHandler(Timer_Elapsed);        timer.Enabled = true;    }    private void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)    {        bool change = false;        lock(lockObj)        {            if (ready)            {                change = true;            }        }        if (change)        {            MessageBox.Show("ready");            timer.Enabled = false;            PictureManager.LoadCompleted -= PictureManager_LoadCompleted;            NextState();        }    }    private void PictureManager_LoadCompleted()    {        lock (lockObj)        {            ready = true;        }    }    private void NextState()    {        MainWindow wnd = (MainWindow)Application.Current.MainWindow;        App app = (App)wnd.contentControl.Content;        app.NextState();    }}有趣的是,我收到幾個“就緒”消息框,看起來根本沒有執(zhí)行NextStage。我不知道為什么會這樣。我將不勝感激任何幫助
查看完整描述

2 回答

?
喵喵時光機

TA貢獻1846條經驗 獲得超7個贊

您是正確的,它是在不同的線程上執(zhí)行的。

您可以使用調用NextState()主線程上的方法Dispatcher

Dispatcher.Invoke(() = > NextState());


查看完整回答
反對 回復 2021-05-29
  • 2 回答
  • 0 關注
  • 184 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號