Execute simple Logic without “locking” the UI

后端 未结 4 1175
一个人的身影
一个人的身影 2021-01-26 05:41

I have a dialog with some txb\'s and a button. When this button is clicked I want to change the button\'s Text, disable the button, start some Logic and then close the Window.

4条回答
  •  无人及你
    2021-01-26 06:16

    when button is clicked:

    button.Enabled = false;
    button.Text = "new text";
    Task.Factory.StartNew(() =>
    {
        // do your tasks here and close the window.
        // type your code normally like calling methods. setting variables etc...
    
        StaticVariable = ExampleUsingMethod();
    });
    

    if your variable needs to be assigned to UI later then you need dispatcher.for example if you want to change button inside the new thread.

    Task.Factory.StartNew(() =>
    {
           Dispatcher.Invoke(() => 
           {
              button.Enabled = false;
              button.Text = "new text";
           }
    
           StaticVariable = ExampleUsingMethod();
    });
    

提交回复
热议问题