1

WindowsアプリケーションをWindows8メトロスタイルアプリに移動しています。Windows8メトロスタイルアプリでメソッドを呼び出す方法がわかりません。Windowsアプリのコードは、

    private void appendLog(string msg)
    {
        if (this.InvokeRequired)
            this.Invoke(new MethodInvoker(delegate { this.appendLog(msg); }));
    }

誰でも私を言うことができます!

前もって感謝します!

4

1 に答える 1

2

あなたが何を達成しようとしているのか正確にはわかりませんが、それがこのようなものであれば、あなたは試してみるべきです

UIスレッドで呼び出された場合はコードを直接呼び出し、それ以外の場合はUIスレッドに送信します。

public void AppendLog(string msg)
{
    if (!Dispatcher.HasThreadAccess)
        Dispatcher.RunAsync(CoreDispatcherPriority.Normal, delegate { AppendLog(msg); });
    else
    {
        // DO YOUR UI STUFF
    }
}

メソッドがUIスレッドで呼び出される場合、コードは直接呼び出されます。それ以外の場合は、後でUIスレッドで呼び出されるようにディスパッチャにプッシュされます...

注:メソッドAppendLogはコントロールで宣言する必要があります。この方法でのみ、Dispatcherプロパティを利用できます...

于 2012-11-01T11:42:56.137 に答える