Я использую стороннюю библиотеку, и некоторые функции библиотеки занимают много времени, поэтому я хочу отобразить диалог «Подождите», функции заняты.Отображение диалогового окна «Подождите» для задачи, отличной от потоковой.
Обычно я хотел бы сделать что-то вроде этого:
Thread longTask = new Thread (new ThreadStart(LongTask));
longTask.IsBackgroud = true;
longTask.Start();
pleaseWaitForm = new PleasWaitForm ("Please wait for task to complete");
pleaseWaitForm.ShowDialog();
void LongTask()
{
// Do time consuming work here
pleaseWaitForm.CanCloseFlag = true;
}
К сожалению, третья библиотека партия не потокобезопасна. Любые обходные пути? Есть ли способ управлять диалоговым окном в качестве фоновой задачи?
Что вы подразумеваете, это не потолочный сейф? Кажется, ваша проблема не связана с этим. Не могли бы вы рассказать. –
Если это не потокобезопасно, это значит, что он не может быть надежно использован более чем одним потоком за раз. Кажется, вы используете одиночный фоновый поток, поэтому все должно быть хорошо. Вы получаете какое-то состояние ошибки/гонки, которое привело вас к тому, чтобы вы угадали свой дизайн? –