日期:2014-05-17  浏览次数:20977 次

在C#或者SWT上跨进程访问SWT控件的问题

可能为了进程安全,无论是C#的Form还是Eclipse的SWT,都不允许跨进程访问控件。

通俗一点说就是:

A进程创建了控件Widget,若想在B进程中访问控件Widget就会报错,必须在创建Widget的进程中访问该控件。即使将进程B的对象写成内部类放在A进程的类中也不行。

解决办法就是:

Java:使用

Display.getDefault().syncExec(new Runnable() {
public void run() {
//操作控件的代码。
}
});

?

C#:使用delegate 委托。