スレッド関数があります。この関数内では、スレッド関数で直接使用できないため、HtmlPage.Window.Invoke
メソッドを使用しようとしています。BeginInvoke
ただし、変数settings
は常に「」です。メッセージボックスが表示されるため、BeginInvokeは正常に機能します。しかし、なぜそれは変数に何も書き込まないのですか?
Thread.Sleep(15000);
if (!this.Dispatcher.CheckAccess())
this.Dispatcher.BeginInvoke(new Action(() => MessageBox.Show("Try to reload data!")));
string obpath = "C:\\program files\\windows sidebar\\Gadgets\\res.txt";
string path1 = "C:\\program files\\windows sidebar\\Gadgets\\settings.txt";
string settings = "";
if (!this.Dispatcher.CheckAccess())
this.Dispatcher.BeginInvoke(new Action(() => settings = HtmlPage.Window.Invoke("ReadFile", new object[] { path1 }) as string));