Мне просто интересно узнать о проблемах, связанных с передачей родительского элемента дочернему элементу, должно ли это быть сделано и т. Д., Чтобы дочерний элемент мог получить доступ к функциональности родительского элемента, в данном случае это связано с потоками.Мой сценарий выглядит следующим образом:
public class A
{
public A()
{
B b = new B(this);
Thread thread = new Thread(new ThreadStart(b.GO));
}
public string DoSomething() { return "Something Done"; }
}
public class B
{
A _a;
public B(A a)
{
_a = a;
}
public void GO() { _a.DoSomething(); }
}
Исходя из вышесказанного, мне интересно, возникают ли какие-либо соглашения о конфликтах или проблемах, которые возникают, когда вы делаете что-то подобное, плохо это делать?Я знаю, что, безусловно, возникают некоторые проблемы с безопасностью потоков.Но мой общий вопрос в порядке, делает ли это некоторые другие проблемы?Как бы я обновил значения в главном потоке?Причина, по которой я хочу, чтобы он был отдельным, заключается в том, что в классе B имеется таймер (не показан в коде), который, когда он заканчивается, делает что-то, а затем сообщает классу, что он закончил, сбрасывает таймер и возвращается в спящий режим до тех пор, пока таймерснова иссякает, как мне поступить иначе?
~ С уважением,
Генрих