我目前正在开发一个销售点程序,该程序可能会被使用同一本地数据库的许多计算机使用。
我问以下问题,因为现在我已经完成了所有设置,因此一次只有一台计算机使用该程序,这实际上很幼稚。但是,我也想知道对我来说,在该线程上实现诸如Threads和Locks之类的方法是否真的可行,或者我是否只是在浪费时间和宝贵的资源。
谁能告诉我?谢谢!我将添加一个摘录代码,该摘录代码可能由不同的进程运行:
private void PuntoDeVenta_Load(object sender, EventArgs e)
{
//Connect to the local database and check if we successfully connected.
conn = new ConexionBD();
if (!conn.conectar())
{
MessageBox.Show("Hubo un error al conectarse a la base de datos. Favor de verificar.", "Error", MessageBoxButtons.OK);
this.Close();
}
comboBox1.SelectedIndex = 0;
groupBox3.Enabled = false;
this.KeyUp += new System.Windows.Forms.KeyEventHandler(KeyEvent);
string[] detalle = conn.informacionEmpresa();
iva = Convert.ToInt16(detalle[10]);
label15.Text = "Impuesto (" + iva + "%):";
//Get the highest order number until now. Not sure if I need to use Thread here.
String maxPedido = conn.detalleNumeroPedidoMasReciente();
int n;
if (int.TryParse(maxPedido, out n))
{
maxPedido = (n + 1).ToString();
}
else
{
n = Convert.ToInt32(Regex.Match(maxPedido, @"\d+").Value);
String nonNumeric = String.Concat(maxPedido.Where(c => !Char.IsDigit(c)));
maxPedido = nonNumeric + (n + 1).ToString();
}
textBox1.Text = maxPedido;
}
Run Code Online (Sandbox Code Playgroud)
Eri*_*ert 19
考虑线程的方式与考虑雇用公司员工的方式一样。您什么时候雇用工人做生意?仅当您有很多工作要做时,因为招聘很昂贵。
理想情况下,仅在满足以下条件时才应创建新线程:
在您的情况下,您似乎正在考虑雇用一名工人来运行数据库查询。那么,你会聘用为您的企业,其唯一的工作就是做工人没有什么不同之处发送一个字母,然后付给他们睡觉,而他们等待的答复?当然不是。因此,也不要雇用线程来执行此操作。如果您要进行的工作不依赖 CPU,就需要进行高延迟的工作,请在单个线程上进行异步工作流。
异步工作流不会雇用新的工作人员。相反,这就像您发送一封信,并且在等待答复到达时,您会发现其他工作要做,从而可以有效地利用您的时间。答复到达后,您将从上次中断的地方开始“信件工作流程”。
| 归档时间: |
|
| 查看次数: |
274 次 |
| 最近记录: |