我有一个
WPF应用程序,它使用几个后台线程来预编译LINQ查询并预先缓存一些值,这些将在以后需要. TPL用于通过以下方式启动这些任务:
var newTask = new Task(taskAction,myCancelToken,TaskCreationoptions.LongRunning); newTask.Start();
这样工作,任务分布在几个cpu核心等上.但是,这些线程会导致高cpu负载,这在UI中是可感知的,只要线程没有完成,它就容易绊倒甚至冻结.
那么,什么是平滑UI的合理方法.通过研究我发现,那个人不应该给线程特别优先.其他人的意思是,频繁使用Thread.Sleep()是要走的路,这对我来说似乎有点过时了.
还有其他我不知道的方法吗?是否存在优先级线程的真正缺点(直接通过TPL不能实现,afaik)?
提前致谢!
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。