さて、これを尋ねるために私を一生懸命に撃ち落とさないでください。
//System.Threadingを使用します;
private void startThread()
{
Thread t = new Thread(ParameterizedThreadStart(setOutputBinaryWorker));
t.Start();
}
setOutputBinaryWorkerは実際の既存のメソッドであるため、これは正常に機能します。ただし、関数名を変数としてstartThread関数に渡す方法を探しています。
私の限られたC#の経験のおかげで、それは可能だと思いますが、その方法を理解できないようです。私はそれが次のようなものになるはずだと想像することができます:
// using System.Threading;
private void startThread(??datatype?? func)
{
Thread t = new Thread(ParameterizedThreadStart(func));
t.Start();
}
しかし、データ型がどうあるべきかを理解することはできません(疑問符の使用の先頭に立っています)。これで、デバッグ中に、渡された関数名が次のようにポップアップ表示されます。
System.Object Void、setOutputBinaryWorker
それは私に続けることをあまり与えません。これらを作成できますか?パラメータを(オブジェクト)としてキャストしようとしましたが、機能しません。
この背後にある主なアイデアは、正しい方法でui要素に書き込むための安全なGUIスレッドを実験することです。今、私はその部分を理解しました。委任されたメソッドを使用すると、すべてがうまく機能します。しかし、現在のアプローチに切り替えると(メソッド名を変数にする)、私は完全に迷子になります。誰かが代替の、より良い、または少なくとも機能する解決策を知っているなら、私は提案を大いに受け入れます。
よろしくお願いします。