I dont know, whether it is to anyone, except for one person who asked me.
Code:
private bool _cancelRequested = false;
bool cancelRequested
{
get
{ return _cancelRequested; }
set
{
_cancelRequested = value;
}
}
Main mainForm;
Thread formThread { get; set; }
public void PluginRun()
{
formThread = new Thread(() =>
{
try
{
mainForm = new Main();
mainForm.Show();
Dispatcher.Run();
}
catch (Exception error)
{
Log(error.ToString());
}
});
formThread.SetApartmentState(ApartmentState.STA);
formThread.Start();
while (!cancelRequested)
Thread.Sleep(10);
}
public void PluginStop()
{
cancelRequested = true;
try
{
if (mainForm != null)
{
mainForm.Dispatcher.InvokeShutdown();
}
}
catch { }
try
{
formThread.Abort();
}
catch { }
}
Last edited: