multithreading - Pocket PC 2003 C# 性能问题...我应该对其进行线程处理吗?

标签 multithreading performance compact-framework pocketpc

环境

  • Windows XP SP3 x32
  • Visual Studio 2005 标准版
  • Honeywell Dolphin 9500 Pocket PC/Windows Mobile 2003 平台
  • .NET Framework 1.1 和 .NET Compact Framework 1.0 SP3
  • 使用 VC#

问题

当我将内置摄像头和 Honeywell SDK ImageControl 中的图像保存到设备的存储卡或内存中时,需要 6 - 7 秒。

我当前将图像保存为 PNG,但也可以选择 BMP 或 JPG。

code 中的相关行:144-184和222,特别是162,163和222。


目标

我想将该时间减少到 2 或 3 秒左右,如果可能的话甚至更短。

作为第二个目标,我正在寻找一个适用于 Pocket PC 2003 设备的分析套件专门支持 .NET Compact Framework 版本 1.0。理想情况下,免费但不受约束的简短教程也可以。


我尝试过的事情

  • 我通过 System.Threading 研究了一些异步 I/O,但我没有经验知道这是否是一个好主意,也不知道如何为单个操作实现线程。
    • 通过像下面的代码中那样实现线程,速度似乎会增加一秒或更短。然而,下一个表单上的某些内容需要图像,可能是在保存的过程中,我真的不知道如何减少等待或处理这种情况。
  • 编辑:将保存格式从 PNG 更改为 BMP 或 JPG,使用线程,似乎可以大大减少保存时间。

代码

http://friendpaste.com/3J1d5acHO3lTlDNTz7LQzB
让我知道代码是否应该在代码标签中发布。它有点长(约 226 行),所以我继续和 friend 粘贴它,因为这在我的上一篇文章中似乎是可以接受的。

最佳答案

通过将保存格式从 PNG 更改为 BMP 并包含代码链接中显示的线程代码,我能够将保存时间减少到约 1 秒。

关于multithreading - Pocket PC 2003 C# 性能问题...我应该对其进行线程处理吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5392900/

相关文章:

c - 等到上一个进程实例完成

java - Java 中有什么方法可以记录*每个*线程中断吗?

c# - 锁定对象究竟意味着什么?

c# - .NET Compact Framework - 基于 Cookie 的 Web 服务访问

Compact Framework 中的 Linq 表达式树

c++ - 两个程序在本地循环中通信时互相阻塞

c++ - 改进从 O(n) 到 O(1) 的双端队列移动

Java Disruptor 模式和低延迟

sql-server - 如何从大表(sql server)中快速删除大量数据

c# - .NET Framework 4.5 及更高版本是否可用于 Embedded Compact 2013 和 Windows 10 IoT Core?