winform 跨线程操作控件需要采用invoke方法,详见https://docs.microsoft.com/en-us/dotnet/framework/winforms/controls/how-to-make-thread-safe-calls-to-windows-forms-controls