【问题标题】:Generating 10000 matrix bar codes takes too much time生成 10000 个矩阵条码需要太多时间
【发布时间】:2017-10-05 13:58:12
【问题描述】:

问题

生成二维条码矩阵时,每 10000 个文件需要 1 分钟。 如何在更短的时间内生成大量的二维条码矩阵?

下面是我点击按钮时执行的代码。

用于编码数据的库在这个链接中:

http://www.mediafire.com/file/ciadoloynverba7/library_used_for_datamatrix.txt

代码:

Class1 CLS = new Class1();
DataTable dt = CLS.ShowalldataSerial(textBox4.Text);

for (int i = 0; i <= Convert.ToInt32(textBox1.Text); i++)
{
    Serial = SRL.Rnd().ToString();
    txt = "UserID" + dt.Rows[0][0] + "FirmName" + dt.Rows[0][1] + "OrderNo" + dt.Rows[0][2] + "BtachNo" + dt.Rows[0][3] + "Quantity" + dt.Rows[0][4] + "ProductName" + dt.Rows[0][5] + "SerialNo" + Serial;

    dm.DM(txt, Color.FromName(comboBox1.SelectedItem.ToString()), Color.White).Save(root + "\\" + Serial + ".emf", System.Drawing.Imaging.ImageFormat.Emf);
}
MessageBox.Show("Records generated success ");

创建10000需要1分钟,如果我在textbox1中写200000需要20分钟。

代码运行没有任何问题,并给出了我需要的结果,但是生成大量数据的速度很慢,那么我应该怎么做才能更快地生成条形码? image to file generating

【问题讨论】:

  • 使用更快的算法?获得更好的 CPU?并行计算?
  • 我们不知道dm 是什么,或者dm.DM 做什么,或者CLS.ShowalldataSerial 做什么。我们不知道您的代码的哪一部分花费了很长时间,或者基本上是什么。请编辑您的问题,使其更加清晰,最好提供minimal reproducible example
  • (您是否考虑过您使用的 Windows 文件系统可能不擅长将 200,000 个文件存储在一个目录中?您是否尝试过将输出“分块”到不同的目录中?)跨度>

标签: .net c#-4.0 io barcode


【解决方案1】:

DataTable 不是执行此操作的理想数据结构,它太慢了。尝试使用连接结构(如数据读取器)加载数据。

另外,您可以尝试编写一个多线程代码来平衡这一点,该代码同时处理几个不同的循环。

【讨论】:

  • 我在原始帖子中附加了用于生成 datamatrix 2d 的库
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-06
  • 2017-01-10
  • 1970-01-01
相关资源
最近更新 更多