Взаимодействие между потоками - C# (235583)
Формулировка задачи:
Привет. Есть класс А, который содержит не статические методы, которые можно вызвать лишь с главного потока. И есть класс Б, который содержит статический метод. Необходимо из статического метода (который выполняется асинхронно) в классе Б, вызвать не статический метод из класса А. Поясните, пожалуйста, сам алгоритм осуществления выше описанных манипуляций. Спасибки.
Решение задачи: «Взаимодействие между потоками»
textual
Листинг программы
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public Form1 f;
public void button1_Click(object sender, EventArgs e)
{
button1.Text = "123";
MessageBox.Show("Click");
}
private void button2_Click(object sender, EventArgs e)
{
var q=new System.Threading.Thread(()=>B.M(f));
f = this;
q.Start();
}
}
public static class B
{
public static void M(Form1 form)
{
form.Invoke(new Action(()=>form.button1_Click(null, null)));
}
}