如何检索我的 BITS 作业的状态?

How can I retrieve the state of my BITS Job?

我正在使用 Microsoft.ConfigurationManagement.Messaging 包来使用 BITS。 到目前为止,我已经编写了以下代码:

BitsJob job = new BitsJob(BitsJobType.Download, displayName);
BitsJobState jobState;
job.AddFileToJob(new Uri(source), destination); // source & destination are method parameters
job.Resume();
do
{
    // Do something with the job as long as its transferring
} while (/*Get job state here*/);

现在我想在 do-while 语句中检索作业的状态。我找不到 属性 或 BitsJob 实例的方法返回作业的当前状态。谁能告诉我如何获取当前的工作状态?

自己想出了答案。对于所有徘徊在这个问题上的人。最好的方法是使用 BitsJobProgress 事件检索它。下面的代码示例可以表明

Job.BitsJobProgress += (sender, e) => 
{
    JobState = e.JobState;
};

BitsJobEventArgs 包括作业状态。这样就可以检索它并将其保存在变量中。