我编写了一个静态类,它是我从不同类调用的一些函数的存储库。
public static class CommonStructures
{
public struct SendMailParameters
{
public string To { get; set; }
public string From { get; set; }
public string Subject { get; set; }
public string Body { get; set; }
public string Attachment { get; set; }
}
}
public static class CommonFunctions
{
private static readonly object LockObj = new object();
public static bool SendMail(SendMailParameters sendMailParam)
{
lock (LockObj)
{
try
{
//send mail
return true;
}
catch (Exception ex)
{
//some exception handling
return false;
}
}
}
private static readonly object LockObjCommonFunction2 = new object();
public static int CommonFunction2(int i)
{
lock (LockObjCommonFunction2)
{
int returnValue = 0;
try
{
//send operation
return returnValue;
}
catch (Exception ex)
{
//some exception handling
return returnValue;
}
}
}
}
问题1:对于我的第二种方法CommonFunction2,我是使用一个新的静态锁,即本例中的LockObjCommonFunction2,还是可以重复使用在函数开头定义的同一个锁对象LockObj。
问题 2:是否有任何可能导致线程相关问题的内容,或者我可以将代码改进为安全线程。
问题 3:在这个例子中传递公共类而不是结构会有什么问题吗 SendMailParameters(我利用包装所有参数,而不是为 SendMail 函数提供多个参数)?
问候, MH