Fråga : C# som uppdaterar WPF med från tråden

Hi pröva förmiddag för

I att figurera ut hur man berättar den huvudsakliga fönstertråden att uppdatera textboxen från tråden som jag frambragte. Jag har läst alla över google om den, och I förstår precis inte den. Exemplen varierar ett lott strukturerar in, så det är svårt att lära det, när det är all olikt.

I får efter felet, när spring detta program:
/////////////////////////////////////////////////////////////////////////////////
System.InvalidOperationException var unhandled
Message=The som kallar tråden, kan inte ta fram detta anmärker, därför att en olik tråd äger it.
Source=WindowsBase
StackTrace:

för System.Windows.Threading.Dispatcher.VerifyAccess () på
för System.Windows.Threading.Dispatcher.DisableProcessing () på
för System.Windows.Documents.TextContainer.BeginChange (Boolean ångrar), på System.Windows.Documents.TextContainer.
för System.Windows.Documents.ITextContainer.BeginChange () på
för System.Windows.Documents.TextRangeBase.BeginChangeWorker (ITextRange thisRange, stränger beskrivning), på
för System.Windows.Documents.TextRangeBase.SetText (ITextRange thisRange, stränger textData), på System.Windows.Documents.TextRange.System. Windows. Documents.ITextRange.set_Text (String värderar),
på System.Windows.Controls.Primitives. TextBoxBase.AppendText (stränga textDataen),
på WpfApplication7.MainWindow.appendToLog () i c:\users\user\documents\vi sualstudion 2010 \ projekterar \ WpfApplication7 \ WpfApplication7 \ MainWindow.xaml.cs: line 41
på System.Threading.ThreadHelper. ThreadStart_Context (Object påstår),

för System.Threading.ExecutionContext.Run (ExecutionContext executionContext, ContextCallback tillbakaringning, anmärker statlig Boolean ignoreSyncCtx), på
för System.Threading.ExecutionContext.Run (ExecutionContext executionContext, ContextCallback tillbakaringning, anmärker statligt), på System.Threading.ThreadHelper. ThreadStart ()
InnerException:
/////////////////////////////////////////////////////////////////////////////////


Here är programet: system för
/////////////////////////////////////////////////////////////////////////////////
using;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.ComponentModel;
using System.Threading;

namespace WpfApplication7
{logik för växelverkan för
///
/// för MainWindow.xaml
offentligt partiska ///

klassificerar MainWindow: Window
{privat tråd t för
; privat
stränger myMessage; offentlig MainWindow ()
{
InitializeComponent, för

(); myMessagen för

= ”dragar mig… \ n”;

t = ny tråd (appendToLog);
t.Start ();
{
för appendToLog för

för
} privat utan laga kraft () för (int i = 0; i < 10;
{
tbLog.AppendText (myMessage) för i++);
Thread.Sleep (1000);
/////////////////////////////////////////////////////////////////////////////////

Thank för
för
för
för
}}}} som du för några hjälper!
" klar "

Svar : C# som uppdaterar WPF med från tråden

Det finns många väg att göra det… är här en:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
    offentligt partiskt klassificerar MainWindow: Fönster
    {

        privat tråd t;
        privat delegat utan laga kraft UpdateLog (stränga msg);

        offentliga MainWindow ()
        {
            InitializeComponent ();
        }

        privata utan laga kraft Window_ContentRendered (anmärka avsändaren, EventArgs e),
        {
            t = ny tråd (appendToLog);
            t.IsBackground = true;
            t.Start ();
        }

        privat utan laga kraft appendToLog ()
        {
            för (int i = 0; i  < 10="">
           
Andra lösningar  
 
programming4us programming4us