本文整理汇总了C#中ICore.GetJobStatus方法的典型用法代码示例。如果您正苦于以下问题:C# ICore.GetJobStatus方法的具体用法?C# ICore.GetJobStatus怎么用?C# ICore.GetJobStatus使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ICore
的用法示例。
在下文中一共展示了ICore.GetJobStatus方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Main
//.........这里部分代码省略.........
NetNamedPipeBinding npb = new NetNamedPipeBinding();
npb.OpenTimeout = npb.CloseTimeout = npb.SendTimeout = npb.ReceiveTimeout = timeoutPeriod;
npb.TransferMode = TransferMode.Buffered;
npb.MaxReceivedMessageSize = npb.MaxBufferPoolSize = npb.MaxBufferSize = Int32.MaxValue;
npb.ReaderQuotas = XmlDictionaryReaderQuotas.Max;
ServiceEndpoint namedPipeEndpoint = _host.AddServiceEndpoint(typeof(ICore), npb, GlobalDefs.MCEBUDDY_LOCAL_NAMED_PIPE);
// Increase the max objects allowed in serialization channel otherwise we lose the connection when there more than 5K objects in the queue
foreach (OperationDescription operation in namedPipeEndpoint.Contract.Operations)
{
DataContractSerializerOperationBehavior dataContractBehavior = operation.Behaviors[typeof(DataContractSerializerOperationBehavior)] as DataContractSerializerOperationBehavior;
if (dataContractBehavior != null)
dataContractBehavior.MaxItemsInObjectGraph = Int32.MaxValue;
}
_host.CloseTimeout = GlobalDefs.PIPE_TIMEOUT;
_host.Open();
_pipeFactory = new ChannelFactory<ICore>(npb, new EndpointAddress(GlobalDefs.MCEBUDDY_LOCAL_NAMED_PIPE));
_pipeProxy = _pipeFactory.CreateChannel();
if (MCEBuddyConf.GlobalMCEConfig.GeneralOptions.engineRunning)
_pipeProxy.Start();
// Now that we are up and running
SystemEvents.PowerModeChanged += OnPowerChange; // Register for power event changes
ConsoleKeyInfo cki;
Console.Title = "MCEBuddy 2.x Service Started, Press ESC to stop";
Console.WindowHeight = 15;
Console.WindowWidth = 80;
int lastNumJobs = 0;
bool Shutdown = false;
while (!Shutdown)
{
if (_forceClosed)
return 1; // Someone forced the closure, the handler will clean up. Exit now
if (Console.KeyAvailable)
{
cki = Console.ReadKey(true);
if (cki.Key == ConsoleKey.Escape)
{
Log.WriteSystemEventLog("MCEBuddy engine app received user shutdown request.", EventLogEntryType.Information);
Shutdown = true;
}
}
try
{
for (int i = 0, numJobs = _pipeProxy.NumConversionJobs(); i < numJobs; i++)
{
if (lastNumJobs != numJobs) // The number of conversion jobs has changed
Console.Clear(); // Clear the screen
string outputStr = "";
outputStr = "Job" + i.ToString(System.Globalization.CultureInfo.InvariantCulture);
JobStatus status = _pipeProxy.GetJobStatus(i);
if (status != null)
{
outputStr += " " + status.CurrentAction;
if (status.PercentageComplete > 0)
outputStr += " " + status.PercentageComplete.ToString("#0.0", System.Globalization.CultureInfo.InvariantCulture) + "%";
else if (-1 == status.PercentageComplete)
outputStr += " Working..."; //some processes like ReMuxSupp don't update perc
if (!String.IsNullOrEmpty(status.ETA))
outputStr += " ETA=" + status.ETA;
if (!String.IsNullOrEmpty(status.SourceFile))
outputStr += " " + Path.GetFileName(status.SourceFile);
}
else
{
outputStr += " Idle";
}
if (outputStr.Length > 78) outputStr = outputStr.Substring(0, 78);
Console.SetCursorPosition(0, i);
Console.Write(outputStr.PadRight(78));
lastNumJobs = _pipeProxy.NumConversionJobs();
}
}
catch (Exception) //while debugging catch Proxy Faulted state and reset it
{
if (_forceClosed)
return 1;
if (Shutdown)
break; // we are done here
_pipeFactory = new ChannelFactory<ICore>(new NetNamedPipeBinding(), new EndpointAddress(GlobalDefs.MCEBUDDY_LOCAL_NAMED_PIPE));
_pipeProxy = _pipeFactory.CreateChannel();
}
System.Threading.Thread.Sleep(GlobalDefs.LOCAL_ENGINE_POLL_PERIOD);
}
ConsoleCloseCheck(ControlSignalType.CTRL_CLOSE_EVENT); // Gracefully shutdown the engine and restart the windows service
return 0; // All good
}