У меня есть форма с анимацией, которую я показываю при выполнении некоторых запросов для других форм. Я делал некоторые исследования, как показать эту анимированную форму по запросам и придумать как это сделать:Тема для анимированной «загрузки» формы
public partial class ProcessingForm : Form
{
private static Thread processingFormThread;
public ProcessingForm()
{
InitializeComponent();
}
public void StartThreadOnProcessingForm()
{
processingFormThread = new Thread(() => { new ProcessingForm().ShowDialog(); });
processingFormThread.Start();
}
public void CloseThreadOnProcessingForm()
{
processingFormThread.Abort();
}
}
и теперь, когда мне нужно использовать форму я сделать это следующим образом:
public void Foo()
{
ProcessingForm pf = new ProcessingForm();
pf.StartThreadOnProcessingForm();
// some request/data actions
Form requestForm;
if (requestdata!= null)
{
requestForm = new requestForm(data);
pf.CloseThreadOnProcessingForm();
requestForm.Show();
requestForm.SetDataForForm(requestdata);
}
}
Это швами как довольно простое решение, но я не видел ничего подобного во время исследования, поэтому мне кажется, что я делаю что-то неправильно. Мой вопрос - есть ли лучший способ сделать такую простую вещь?
Что вы хотите, не очень-то понимаете? – ZoomVirus
'processingFormThread.Abort();' Нет. Просто нет. –
Я не уверен, что решение для потоковой обработки, которое я здесь делал, было правильным, потому что люди предлагали использовать backgroundworker для отображения анимированных форм, в то время как некоторые действия выполнялись. Также я не уверен, что Abort является правильным способом отменить поток для этой формы. – Buggy