基本上,我有一堂课,可以根据需要上传照片;通常以用户可以在闲暇时添加照片的形式。
当类的实例完成时(通常是在窗体关闭时),我希望它自动运行处理(压缩等)照片的Web作业。我不希望每次他们添加照片时都触发网络作业。我还希望避免要求调用代码显式调用触发Web作业的照片处理类中的方法-尽管您可能会告诉我这样做是正确的方法。
我阅读的文档表明析构函数用于释放资源,但是它也可以用于调用不再需要该对象之后要执行的特定任务吗?
这是基本概念:
public class DoSomething
{
DoSomething()
{
//initialize
}
public void DoTheActualThing()
{
//Upload photos to cloud as needed
}
~DoSomething()
{
//Call Async web job to process photos into zip
PostImageSyncDate(_SyncPhotoData)
}
}
//异步方法在单独的服务类中
public async Task<bool> PostImageSyncData(ProjectModel syncPhotosData)//, JObject token = null)
{
try
{
string serializedData = JsonConvert.SerializeObject(syncPhotosData);
StringContent content = new StringContent(serializedData, Encoding.UTF8, "application/json");
using (HttpClient client = new HttpClient())
{
client.BaseAddress = new Uri(_URL);
var response = await client.PostAsync("CustomImageSync", content);
return response.IsSuccessStatusCode;
}
}
catch (Exception ex)
{
if (ex == null) throw;
return false;
}
}