Witam! Mam nastepujaca sytuacje :
- Klasa A (jako biblioteka DLL) posiada :
public delegate void TeachingLogger(int Epo, double Erm);
private TeachingLogger LoggerFunction;
private Thread TeachingThread;
public void SetLoggerFunction(TeachingLogger function)
{
LoggerFunction = function;
LogFunction = true;
}
public void TeachingStart()
{
TeachingThread = new Thread(new ThreadStart(this.Teach));
TeachingThread.Start();
}
private void Teach()
{
int epo = 0;
double erm = 0.0;
while(1==1)
{
LoggerFunction(epo,erm);
epo++;
erm+=1.0;
}
}
Następnie mam klase B oparta o WindowsForms z dwoma labelami, korzystajaca z klasy A :
public void log(int Epo, double Erm)
{
label1.Text = "Epoch : " + Epo.ToString();
label2.Text = "ERMS : " + Erm.ToString();
Application.DoEvents();
}
private void button1_Click(object sender, EventArgs e)
{
A.Perceptron.SetLoggerFunction(log);
A.TeachingStart();
}
No i niestety wywala mi blad, ze
Nieprawidłowa operacja między wątkami: do formantu 'label2' uzyskiwany jest dostęp z wątku innego niż wątek, w którym został utworzony.
Jakies pomysly?