У меня многопоточное приложение C#, в котором нажатие кнопки (Button homeBut
) запускает новый поток, который выполняет данный метод. При щелчке, я отключить кнопку и запустить поток.C# Call Method On Return
Чтобы повторно включить кнопку, я в настоящее время сделать это в конце метода:
if (InvokeRequired)//if accessing from different thread
{
this.Invoke(new Action<Button>(enableButton), new object[] { homeBut });
}
Есть несколько мест, из которых можно вернуть метод, и я надеялся, чтобы избежать копирования и вставки этого кода фрагмент в 4 разных местах, чтобы кнопка всегда была включена.
Есть ли способ, которым я могу выполнить такой блок кода всякий раз, когда метод возвращается, так что я только пишу его один раз?
Thanks weston; метод ContinueWith - именно то, что я искал. Есть ли недостаток в использовании задачи вместо потока? – Derek
Нет, потому что задача выполняется на одном из нескольких потоков фона из пула потоков, но поскольку это потоки, которые используются повторно, и вам не нужно создавать их, чтобы они были быстрее. (Запуск потока - довольно дорогое дело). – weston