我目前正在開發(fā)一個銷售點程序,該程序可能由使用相同本地數據庫的許多計算機使用。我問以下問題是因為現在我已經完成了所有設置,因此一次只有一臺計算機使用該程序,這實際上是天真的。然而,我也想知道我是否真的可以在上面實現諸如線程和鎖之類的東西,或者我是否只是浪費時間和寶貴的資源。誰能告訴我嗎?謝謝你!我將添加可能由不同進程運行的摘錄代碼: 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; }
1 回答

收到一只叮咚
TA貢獻1821條經驗 獲得超5個贊
像考慮為企業(yè)雇用員工一樣考慮線程。您什么時候為企業(yè)雇用工人?只有當你有很多工作要做時,因為招聘成本很高。
理想情況下,僅當滿足以下條件時才應創(chuàng)建新線程:
要做的工作是 CPU 密集型的
這項工作很長——肯定超過 30 毫秒,更像是幾秒或幾分鐘的工作。
有一個空閑 CPU 可以 100% 專用于為該線程提供服務。
就您而言,您似乎正在考慮雇用一名工作人員來運行數據庫查詢。好吧,你會為你的企業(yè)雇傭一名工人,他唯一的工作就是發(fā)一封信,然后讓他們在等待回復時睡覺嗎?當然不是。因此,也不要雇用線程來執(zhí)行此操作。如果您要執(zhí)行的高延遲工作不受 CPU 限制,請在單個線程上創(chuàng)建異步工作流程。
異步工作流程不會雇用新的工作人員。相反,這就像您發(fā)送一封信,在等待回復的同時,您會找到其他工作要做,從而有效地利用您的時間。當回復到達時,您可以從上次中斷的地方繼續(xù)執(zhí)行“信件工作流程”。
- 1 回答
- 0 關注
- 107 瀏覽
添加回答
舉報
0/150
提交
取消