シリアルからUSB
デバイスからテキストフィールドにデータを書き込もうとしていますが、スローし続けます:
別のスレッドがこのオブジェクトを所有しているため、呼び出しスレッドはこのオブジェクトにアクセスできません
ディスパッチまたはそれらの線に沿って何かをしなければならないことは知っていますが、どこから始めればよいかわかりません。シンプルだと思いますが、空白を描いています。これが私のコードです:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
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.IO.Ports;
using System.Windows.Threading;
namespace serial_app_one
{
public partial class MainWindow : Window
{
private SerialPortProgram _serial;
public MainWindow()
{
InitializeComponent();
_serial = new SerialPortProgram(this);
}
}
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
class SerialPortProgram
{
// Create the serial port
private SerialPort port;
MainWindow _window;
public SerialPortProgram(MainWindow window)
{
_window = window;
AppendText("Incoming Data:");
port = new SerialPort("COM3", 9600, Parity.None, 8, StopBits.One);
// Attach a method to be called when there
// is data waiting in the port's buffer
port.DataReceived += new
SerialDataReceivedEventHandler(port_DataReceived);
// Begin communications
port.Open();
}
private void AppendText(string text)
{
_window.Dev_output.Text += string.Format("{0}{1}", text, Environment.NewLine);
}
private void port_DataReceived(object sender,
SerialDataReceivedEventArgs e)
{
// Show all the incoming data in the port's buffer
AppendText(port.ReadExisting());
}
}
}