可能为了进程安全,无论是C#的Form还是Eclipse的SWT,都不允许跨进程访问控件。
通俗一点说就是:
A进程创建了控件Widget,若想在B进程中访问控件Widget就会报错,必须在创建Widget的进程中访问该控件。即使将进程B的对象写成内部类放在A进程的类中也不行。
解决办法就是:
Java:使用
Display.getDefault().syncExec(new Runnable() { public void run() { //操作控件的代码。 } });
?
C#:使用delegate 委托。