问题描述
- C# 回车触发一个打印函数,会卡死,如果打印前sleep(3000)就正常。求指教 。
-
C# 界面 回车触发一个打印函数,会卡死,如果在打印的函数里,在打印局部方法执行前thread.sleep(3000)就正常。 一定大于等于3秒,2秒也会卡死。但这样打印会很慢,怎样解决。谢谢大家指教下。
解决方案
新开一个线程可以不?触发函数里控制线程就行,把打印函数放在线程里
解决方案二:
打印本身是一个耗时的过程,你应该开线程,把耗时操作放到线程中,这样就不会阻塞主线程,界面就不会卡死了。
解决方案三:
1.使用线程和委托来执行这个耗时的操作,开一条新的线程来执行打印的方法,这个方法判断当前是否主线程调用,
是的话就使用委托来执行这个打印的方法。
2.使用异步编程来处理,通过回调函数来通知执行结果,期间可以新开线程做些界面响应(进度条什么的)或者一直阻塞到打印完成为止。
3.使用C#控件BackgroundWork发起后台操作调用。
解决方案四:
使用线程和委托来执行这个耗时的操作,开一条新的线程来执行打印的方法,这个方法判断当前是否主线程调用,
是的话就使用委托来执行这个打印的方法。
解决方案五:
为了不锁死UI,造成界面卡顿,应该将打印的操作额外开一个线程操作。
时间: 2024-09-13 00:33:05