使用实时图表时出现线程错误



我正在尝试在winforms应用程序中使用LiveCharts CartesianChart。 当我尝试运行应用程序时,会出现此错误:

PresentationCore 中发生了类型为"System.InvalidOperationException"的未处理异常.dll

其他信息:调用线程必须是 STA,因为许多 UI 组件都需要这样做。

在包含 Form.Designer 中的this.cartesianChart1 = new LiveCharts.WinForms.CartesianChart();的行上.cs在InitializeComponent()函数内。

有什么办法可以解决这个问题吗?

您需要从新线程运行它并将单元状态设置为 STA:

TaskCompletionSource<T> tcs = new TaskCompletionSource<T>();
Thread thread = new Thread(() =>
{
try
{
tcs.SetResult(func());
}
catch (Exception e)
{
tcs.SetException(e);
}
});
thread.SetApartmentState(ApartmentState.STA);
thread.Start();

其中func()是创建和显示图表的位置。

你需要在Main之前写[STAThread]

[STAThread]
static void Main()
{

相关内容

  • 没有找到相关文章