今天写个小工具,在初始化TreeView时,为了不让窗体挂掉,特意使用了多线程,结果发现TreeView很奇怪,不能使用多线程来操作,无论是使用将CheckForIllegalCrossThreadCalls=false;的非安全线程模式,还是安全线程模式,亦或BackgroundWorker模式,都不能在非UI线程里对TreeView进行操作。网上有个关于VB.NET的多线程操作TreeView的帖子,提出在线程里定义一个TreeView,生成Node后再添加到TreeView里,其文章说,在添加操作也会耗费一点时间,顾我没有采用,因为使用多线程就是为了在初始化TreeView时不让窗体挂掉。
对于多线程为何不能直接操作TreeView,暂没思考原因,发表在此是希望起到抛砖引玉的作用。哪位仁兄研究过,望告知,小弟不胜感激。