本文整理汇总了C#中IProcess.Start方法的典型用法代码示例。如果您正苦于以下问题:C# IProcess.Start方法的具体用法?C# IProcess.Start怎么用?C# IProcess.Start使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IProcess
的用法示例。
在下文中一共展示了IProcess.Start方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AddProcess
public void AddProcess(IProcess process)
{
this._processes.Add(process);
if (this.ExecutionState == ProcessExecutionState.Running)
{
// TODO: handle exceptions and atomicity
process.Start();
}
}
示例2: StartProcess
protected async Task<bool> StartProcess(IProcess process)
{
try
{
await process.Start();
process.Exited += OnProcessExited;
return true;
}
catch (Exception)
{
Trace.TraceInformation("Could not start the host process for application {0}", Identity);
return false;
}
}
示例3: StartInternal
/// <summary>
/// Starts this instance.
/// </summary>
protected override void StartInternal()
{
try
{
Log.Source.TraceEvent(TraceEventType.Start, 0, GetType() + " StartInternal method called.");
process = ContextRegistry.GetContext().GetObject("Coordinator") as IProcess;
process.Start();
}
catch (Exception ex)
{
Log.Source.TraceEvent(TraceEventType.Error, 0, ex.ToString());
}
}
示例4: ExecuteEngine
protected IEnumerable<BuildResult> ExecuteEngine(IProcess process)
{
process.Start();
var reader = process.StandardOutput;
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
var parsed = FileBuildParser.Parse(line);
if (parsed.Count() > 0)
foreach (var m in parsed)
yield return m;
else
yield return new TextBuildResult(line);
}
process.WaitForExit();
if (process.ExitCode != 0)
yield return new ErrorBuildResult();
}
示例5: Stop
/// <summary>
/// Also to be thought about BeginStop, but not sure about BeginStart (SD)
/// </summary>
public override void Stop()
{
Log.TraceData(Log.Source,TraceEventType.Stop,
ProducerManagerMessage.StoppingProducing,
new ContextualLogEntry
{
Message =
string.Format
(
"{0}: Thread Id = {1}': Stopping Producing.",
Name,
Thread.CurrentThread.ManagedThreadId
),
ContextIdentifier = contextIdentifier
});
if (
ErrorTrap.AddAssertion
(
producers != null,
ProducerManagerMessage.ProducersNotInstantiated,
string.Format
(
"{0}: Thread Id = {1}': Producers Not Instantiated",
Name,
Thread.CurrentThread.ManagedThreadId
),
contextIdentifier
)
)
{
var whs = new WaitHandle[producers.Count];
for (int i = 0; i < producers.Count; i++)
{
IAsyncResult ar =
producers[i].BeginStop
(
null,
producerStoppedCallback);
whs[i] = ar.AsyncWaitHandle;
}
// Starting the process that will move messages from the retrievedItems internal collection
// to the retrieval queue
retrievedItemsCleaner = new RetrievedItemsCleanerManager
(
RetrievedItems,
RetrievalStorageIsRecoverable,
contextIdentifier,
RetrievedItemsCleanerInterval,
"RetrievedItems Cleaner",
"Stores retrieved items back to the Retrieval queue.",
RetrievalCleanersCount,
CleanerRegularStopTimeout
);
retrievedItemsCleaner.Stopped += RetrievedItemsCleaner_Stopped;
retrievedItemsCleaner.Start();
bool processesStoppedWithinTimeout = WaitHandle.WaitAll
(
whs,
ProducingStopTimeout,
false
);
if (!processesStoppedWithinTimeout)
{
Log.TraceData(Log.Source,TraceEventType.Error,
ProducerManagerMessage.ProducersStoppingTimeoutError,
new ContextualLogEntry
{
Message =
string.Format
(
"{0}: Some of the producers were not able to StopInternal within timeout of {1} ms." +
" Process will continue its regular shutdown by calling RetrievedItemsCleaner StopInternal.",
Name,
ProducingStopTimeout
),
ContextIdentifier = contextIdentifier
});
}
retrievedItemsCleaner.Stop();
if (!cleanerStopEvent.WaitOne
(
TotalCleanerRegularStopTimeout,
false
))
{
Log.TraceData(Log.Source,TraceEventType.Error,
//.........这里部分代码省略.........