だからここは私のコードです:今DispatcherObjectの継承と使用法...何が得られないのですか?
class Program
{
static DispatchClass dc;
[STAThread]
static void Main(string[] args)
{
dc = new DispatchClass();
Thread th = new Thread(AccessDC);
th.Start();
Console.ReadKey();
}
private delegate void AccessDCDelegate(object state);
static private void AccessDC(object state)
{
if(dc.Dispatcher.CheckAccess())
dc.Print("hello");
else
dc.Dispatcher.Invoke(new AccessDCDelegate(AccessDC));
}
}
public class DispatchClass : DispatcherObject
{
public void Print(string str)
{
Console.WriteLine(str);
}
}
...私が作成したスレッドは、ディスパッチャのアクセスをチェックするために、AccessDCを別のスレッドで、それがあることを確認してから起動され、このから期待出力( ...)をチェックして、それが正しいスレッド上にあることを確認し、dc.Print(...)を呼び出します。
実際には、CheckAccess()に到達し、正しいスレッドにないことを正しく認識してから、Invoke(...)を呼び出してそこで停止します。
Dispatchersの仕組みについての洞察は非常に高く評価されます。
ありがとうございました。