Привет всем. Я новичок во всех этих многопоточных вещах, поэтому, извините меня, если я это плохо объясню:)
Допустим, у меня есть два класса:
class abc {
public string SomeProperty {
get { return something; }
set { /* This code has to execute in the main application thread */ }
}
public void SomeMethod() {
/* This code also has to execute in the main application thread */
}
}
class def {
abc obj;
public def() {
abc = new obj();
}
public void SomeMethod() {
abc.SomeProperty = "SomeValue";
abc.SomeMethod();
}
}
проблема, которую я имею, заставляет SomeProperty и SomeMethod выполняться в главном потоке приложения.Я пытался:
abc.GetType().InvokeMember("SomeProperty", System.Reflection.BindingFlags.SetProperty, null, abc, new object[] { "SomeValue" });
abc.GetType().InvokeMember("SomeMethod", System.Reflection.BindingFlags.InvokeMethod, null, abc, null);
Однако код, который должен выполняться в основном потоке приложения, не выполняется в основном потоке приложения, даже с использованием InvokeMember (я так не думаю), яЯ пытался вывести текущее имя потока в коде, и оно не выводило имя основного потока приложения.
Есть ли способ, которым я могу это сделать?Если я плохо объяснил, просто дайте мне знать :) Спасибо!