1

我已經創建了一個windows應用程序(使用c#.net)進行我們部門的調試比賽。 在這許多用戶使用相同的數據庫來選擇問題的列表,並更新在他們各自的ID單獨標記。 不使用線程的概念,當他們在數據庫中更新自己的商標.. ANY1請幫助我..在advace 感謝...更新同一個數據庫時是否需要使用多線程概念?

回答

3

要多做Mutil-Threading或多個線程在方案中使用它需要一次完成一項任務或同時完成一些任務。您應該考慮自己的場景以及可能在場景中使用多個線程。如果您認爲有一些任務可以分爲兩個獨立的任務並且可以並行運行,那麼可以使用多線程來獲得性能改進。同樣,如果你認爲有一些任務很繁重,需要花費很多時間,你可以將該任務移動到Background Thread,並使用主線程並行處理一些其他任務。這一切都取決於你的情況。

現在來到你的情況下,如果它是一個Windows窗體應用程序很可能會出現只有一個這個應用程序的用戶在同一時間誰將會通過用戶界面進行交互。如果這個假設是正確的,我不認爲你會需要多線程。如果用戶正在做一些投入徹底UI和他點擊保存按鈕,最後才能保存數據庫信息,你不需要多線程單一的UI線程就足以做到這一點

0

不,這是沒有必要的。每個用戶將從數據庫連接池獲得一個連接,並且這些連接同時工作,並且不需要並行編程。

0

如果您更新來自不同線程的數據庫,也不會損壞。這與普通的C#不同,您需要應用鎖來保護對象。您可能被要求使用事務來確保您的數據庫更新不會在更高級別上互相干擾。簡而言之,如果您在多個表中編輯數據庫,或者數據庫的更改取決於數據庫內容(如添加來自客戶的訂單),事務將阻止您爲已刪除的客戶添加訂單。

0

您需要使用非UI線程的任何數據庫的交互,否則UI可能會停止響應。例如。如果你從UI線程執行一個長查詢(或者你的連接被中斷,或者數據庫被大量使用或者任何可能出錯的東西 - 會出錯),那麼UI線程會被阻塞,直到收到完整的響應。

在有多個用戶,可以在數據庫中更新同一數據的情況下,可能需要引入交易,以確保正確的控制和數據流 - 酸。