1
1
这个 Task Parallel Library 绝对是简化代码的地方。我亲自写了一篇(半长篇)介绍 Parallelism with .NET 4 这涵盖了很多有用的概念。 但是,请注意,您可能会考虑将绘图保留为单线程。您应该尝试保持计算多线程,以及在GUI线程上完成的实际绘图操作。 大多数绘图API都要求在同一同步上下文上执行所有实际的绘图调用。 也就是说,使用新的集合类 ConcurrentQueue 简化这种类型的代码。试着从许多线程(生产者)的角度来考虑,将“绘图操作”添加到一个共享的并发队列中,并将一个线程(消费者)抓取并执行这些操作。 这为您提供了一个合理的可扩展性,但相当简单的设计,您可以在此基础上进行构建。 |
2
9
三个字:不在窗户下面。 就这么简单。由于兼容性原因,标准Windows绘图是按定义单线程绘制的。任何用户界面控件(让我们坚持.NET世界)都只能从其创建线程中进行操作(因此,实际上,它比单线程更为残酷-它只是一个特定的线程)。 你可以单独进行预分解,但真正的绘制不是从那条线开始的。 除非您分配了一个位图,否则请在那里绘制自己的图形,然后将其转换为UI线程,以便在窗口上进行绘制。 这与整个任务并行库等(我投了反对票)没有任何关系,而是回到了城镇,回到了一个非常古老的需求,出于简单的原因和兼容性,这个需求一直存在。这就是为什么任何UI线程都要作为集成线程设备上市的原因。 另外请注意,如果您自己实现多线程绘图,则会有严重的影响。哪一个在光学上获胜(停留在前景中)?当使用多线程时,这并不是真正可以确定的。不过,你可以自由尝试。 在这种情况下:
|
drainzerrr · Go锁定结构的一部分 6 年前 |
Azim · 使用java 8并行处理图像 6 年前 |
user8005765 · Karatsuba-多项式与CUDA相乘 6 年前 |
Adi · 并行读取大型XSLT字符串 6 年前 |
A.J · 同时运行两个python文件 6 年前 |
Kristofer · 当索引设置为私有时,如何确保访问缓冲区是私有的 6 年前 |