在同一个线程中,不能同时有两个活动的Display存在,只能存在一个Display,这个线程不管是主线程还是后台线程。
例如,在主线程中连续创建两个new Display,就会抛出异常。
Display display = new Display();
Display display2 = new Display();
抛出异常:
Exception in thread "Thread-0" org.eclipse.swt.SWTException: Invalid thread access
如果由于某些程序特殊的需要,需要创建多人同时活动的Display实例,则必须在不同的线程中创建它们。
具体为什么会抛出异常,可以查看源码。