我有一個類ReceiveFaxPrintHelper在c#中,我實現爲密封。我也實現了這個作爲Singleton。我在這個類中定義了一個方法PrintStoredFaxes,我使用鎖來保護它。正在使用c#中的多線程安全結構#
我有的問題是,如果我改變ReceiveFaxPrintHelper從類到結構,這是否會影響我的線程? Ndepend建議我將其改爲結構而不是類。
public sealed class ReceiveFaxPrintHelper
{
private static AutoResetEvent mJobCompleted = new AutoResetEvent(false);
private bool mPrintStoredFaxesInProgress = false;
private object mLockPrint = new object();
private const string mClassName = "ReceiveFaxPrintHelper";
/// <summary>
/// Function that prints the Stored Faxes
/// </summary>
/// <param name="o">completing the delegate message signature</param>
public void PrintStoredFaxes(object o)
{
lock (mLockPrint)
{
我用這個像這樣:
ThreadPool.QueueUserWorkItem(new WaitCallback(ReceiveFaxPrintHelper.Instance.PrintStoredFaxes));
你知道的結構和類之間的區別?因爲基於這個問題,它不會像你這樣做,你可能想對這個問題做一些研究。如果你想要一個你的對象的實例,你應該使用一個類而不是結構。 –
接受至少80%的問題讓人們開始回答你。 – AgentFire