CloudStorageAccount 変数について質問があります。コードで頻繁に使用および宣言してきましたが、それをグローバル変数として宣言し、すべての関数で使用すると競合が発生する可能性があるかどうか疑問に思っていました。簡単な例で私の質問を示します。
public class AzureQueueSvc : IQueueSvc
{
DoclQueue _queue;
public AzureQueueSvc(DoclQueue queue)
{
_queue = queue;
_queue.Connectionstring = ConfigurationManager.AppSettings["Microsoft.ServiceBus.ConnectionString"];
}
public CloudQueue GetQueue { get; }
public void CreateQueue()
{
CloudStorageAccount account = CloudStorageAccount.Parse(_queue.Connectionstring);
CloudQueueClient queueClient = account.CreateCloudQueueClient();
CloudQueue queue = queueClient.GetQueueReference(_queue.Name);
queue.CreateIfNotExists();
}
public bool QueueExists()
{
CloudStorageAccount account = CloudStorageAccount.Parse(_queue.Connectionstring);
CloudQueueClient queueClient = account.CreateCloudQueueClient();
CloudQueue queue = queueClient.GetQueueReference(_queue.Name);
if (queue.Exists())
return true;
else
return false;
}
public void SendMessage(DoclMessage message)
{
CloudStorageAccount account = CloudStorageAccount.Parse(_queue.Connectionstring);
CloudQueueClient queueClient = account.CreateCloudQueueClient();
CloudQueue queue = queueClient.GetQueueReference(_queue.Name);
queue.CreateIfNotExists();
CloudQueueMessage msg = new CloudQueueMessage(string.Format(message.ToString()));
queue.AddMessage(msg);
}
}
ご覧のとおり、CloudStorageAccount、CloudQueueClient、CloudQueue を 3 回宣言する必要があります。それらをグローバル変数として宣言し、メソッドでそれらの使用法を共有すると、競合が発生しますか?