我有一个 c# ui,可以调用 C dll 。 UI打开一个工作区,我希望DLL在用户在工作区中执行其他工作时在后台加载大文件。现在,UI在pinvoke的帮助下与DLL通信。 (loadFile
是C dll函数之一。)
在某些时候,用户会在工作区中执行某些操作,要求文件完全加载,因此需要以某种方式查询DLL是否已完成加载文件。我有 c#和 C代码的来源,因此我可以更改任何一方的内容。
成为 c#的新手,并且永远不会超过业余C编码员,我可以使用c# backgroundWorker
实现我想要的目标吗?
或使用某种形式的线程?
或者C dll会阻止所有内容,直到它完成加载?
答案 0 :(得分:0)
您可以从后台工作组件调用C函数。此外,您需要确保触发后台工作程序的完成事件。这可以使用后台工作程序的属性进行设置。
这样,当后台工作人员完成其工作时,它将通知用户界面工作已完成,用户界面可以适当地处理图像。
在这里,你必须确保你的C代码是阻塞的,即不是多线程的,以确保只有在函数完成工作后才触发后台工作程序事件。