【发布时间】:2013-10-29 09:17:55
【问题描述】:
我有一个 C# 应用程序,它在加载时(在 Windows 上)在新线程上从非托管 C++ DLL 调用函数。此时它们作为并行线程运行并执行不同的任务。 DLL 函数每隔一段时间将一些信息写入内存映射文件。我希望此函数在完成对 MMF 的写入后向 C# 应用程序发送通知。这个通知最好带有一些数字,但如果这使事情复杂化,则不是必须的。
编辑:
在整个过程中发生的情况是 C++ 库正在执行一些繁重的计算任务,而 C# 应用程序是一个用作 GUI 的 WPF 项目,C++ 将其状态更新作为一个很长的向量发送打印到 MMF 的参数(似乎是一种快速且有条理的方式)。此信息应显示在 GUI 中。
在 cmets 中,有人说使用 MMF 在这里不是一个好习惯,因为所有活动都在同一个进程中执行。我愿意就如何更好地规划此程序提出建议。
【问题讨论】:
-
如果你想要好的建议,我想你需要解释更多。首先,是什么促使您选择内存映射文件?
-
对我来说,听起来你想将一些信息从一个线程传递到另一个线程,两者都在同一个进程中运行。
-
@helb 猜你是对的,已编辑
-
内存映射文件在这里是完全错误的。这是一个进程中的问题。
-
@DavidHeffernan 我已经编辑了问题的名称和内容,很高兴听到你的意见
标签: c# c++ multithreading