Я не уверен, в каком контексте вы находитесь, но в WinForms вы можете получить доступ к основному потоку пользовательского интерфейса формы из другого потока с помощью form.Invoke()
, например:
// Assuming the following Form and method:
Form form = ...
Action method = ...
// Invoke the method like this, so it is run in the UI thread.
if (form.InvokeRequired)
{
form.Invoke(method);
}
// If we are already in the UI thread,
// just run the method without an invoke.
else
{
method();
}