Job2 Class

Definition

New base class for a job that provides extended state management functionality on the job. Since the existing Job class is an abstract class and there are existing implementations of the same, it is required to have a new class that will have the extended functionality. This is to ensure that backwards compatibility is maintained

However, this class will derive from the existing Job class. The option of deprecating the existing class was considered as well. In order to maintain backwards compatibility of PowerShell job cmdlets they will have to work with the old interface and hence deprecating the Job class did not add any benefit rather than deriving from the same.

public ref class Job2 abstract : System::Management::Automation::Job
public abstract class Job2 : System.Management.Automation.Job
type Job2 = class
    inherit Job
Public MustInherit Class Job2
Inherits Job
Inheritance
Job2
Derived

Remarks

The following are some of the notes about why the asynchronous operations are provided this way in this class. There are two possible options in which asynchronous support can be provided: 1. Classical pattern (Begin and End) 2. Event based pattern

Although the PowerShell API uses the classical pattern and we would like the Job API and PowerShell API to be as close as possible, the classical pattern is inherently complex to use.

Constructors

Job2()

Default no argument constructor.

Job2(String)

Constructor which will initialize the job with the associated command string.

Job2(String, String)

Creates an instance of this class.

Job2(String, String, Guid)

Creates an instance of this class.

Job2(String, String, IList<Job>)

Creates an instance of this class.

Job2(String, String, JobIdentifier)

Creates an instance of this class.

Properties

ChildJobs

List of child jobs contained within this job.

(Inherited from Job)
Command

Command Invoked by this Job.

(Inherited from Job)
Debug

Gets or sets the debug buffer. Debug output of Job is written to this buffer. Cannot set to a null value.

(Inherited from Job)
Error

Gets or sets the error buffer. Errors of job are written into this buffer.

(Inherited from Job)
Finished

Wait Handle which is signaled when job is finished. This is set when state of the job is set to Completed, Stopped or Failed.

(Inherited from Job)
HasMoreData

Indicates that more data is available in this result object for reading.

(Inherited from Job)
Id

Short identifier for this result which will be recycled and used within a process.

(Inherited from Job)
Information

Gets or sets the information buffer. Information records of job are written to this buffer.

(Inherited from Job)
InstanceId

Unique identifier for this job.

(Inherited from Job)
JobStateInfo

Status of the command execution.

(Inherited from Job)
Location

Indicates a location where this job is running.

(Inherited from Job)
Name

Name for identifying this job object.

(Inherited from Job)
Output

Gets or sets the output buffer. Output of job is written into this buffer.

(Inherited from Job)
Progress

Gets or sets the progress buffer. Progress of job is written into this buffer.

(Inherited from Job)
PSBeginTime

Time job was started.

(Inherited from Job)
PSEndTime

Time job stopped.

(Inherited from Job)
PSJobTypeName

Job type name.

(Inherited from Job)
StartParameters

Parameters to be used to start a job. This is a property because CommandParameterCollection does not have a public constructor. Hence the infrastructure creates an instance and provides it for the implementations to use.

StatusMessage

Success status of the command execution.

(Inherited from Job)
SyncRoot
Verbose

Gets or sets the verbose buffer. Verbose output of job is written to this stream.

(Inherited from Job)
Warning

Gets or sets the warning buffer. Warnings of job are written to this buffer.

(Inherited from Job)

Methods

AutoGenerateJobName()

Automatically generate a job name if the user does not supply one.

(Inherited from Job)
Dispose()

Dispose all managed resources. This will suppress finalizer on the object from getting called by calling System.GC.SuppressFinalize(this).

(Inherited from Job)
Dispose(Boolean)

Release all the resources.

(Inherited from Job)
DoLoadJobStreams()

This method is introduce for delaying the loading of streams for a particular job.

(Inherited from Job)
DoUnloadJobStreams()

Unloads job streams information. Enables jobs to clear stream information from memory.

(Inherited from Job)
LoadJobStreams()

Load the required job streams.

(Inherited from Job)
OnResumeJobCompleted(AsyncCompletedEventArgs)

Method which can be extended or called by derived classes to raise the event when resuming a suspended job is completed.

OnStartJobCompleted(AsyncCompletedEventArgs)

Method which can be extended or called by derived classes to raise the event when start of the job is completed.

OnStopJobCompleted(AsyncCompletedEventArgs)

Method which can be extended or called by derived classes to raise the event when stopping a job is completed.

OnSuspendJobCompleted(AsyncCompletedEventArgs)

Method which can be extended or called by derived classes to raise the event when suspending a job is completed.

OnUnblockJobCompleted(AsyncCompletedEventArgs)

Method which can be extended or called by derived classes to raise the event when unblocking a blocked job is completed.

ResumeJob()

Resume a suspended job.

ResumeJobAsync()

Resume a suspended job asynchronously.

SetJobState(JobState)

Sets Job State.

(Inherited from Job)
SetJobState(JobState, Exception)

There is an internal method in Job which is not made public. In order to make this available to someone implementing a job it has to be added here. If the original method is made public it has changes of colliding with some implementation which may have added that method.

StartJob()

Start a job. The job will be started with the parameters specified in StartParameters.

StartJobAsync()

Start a job asynchronously.

StopJob()

Stop this job object. If job contains child job, this should stop child job objects also.

(Inherited from Job)
StopJob(Boolean, String)

StopJob.

StopJobAsync()

Stop a job asynchronously.

StopJobAsync(Boolean, String)

StopJobAsync.

SuspendJob()

Suspend a job.

SuspendJob(Boolean, String)

SuspendJob.

SuspendJobAsync()

Asynchronously suspend a job.

SuspendJobAsync(Boolean, String)

SuspendJobAsync.

UnblockJob()

Unblock a blocked job.

UnblockJobAsync()

Unblock a blocked job asynchronously.

UnloadJobStreams()

Unload the required job streams.

(Inherited from Job)

Events

ResumeJobCompleted

This event should be raised whenever the asynchronous resume of a suspended job is completed. This event should not be raised for synchronous operation.

StartJobCompleted

Event to be raise when the start job activity is completed. This event should not be raised for synchronous operation.

StateChanged

Event raised when state of the job changes.

(Inherited from Job)
StopJobCompleted

Event to be raised when the asynchronous stopping of a job is completed.This event should not be raised for synchronous operation.

SuspendJobCompleted

This event should be raised whenever the asynchronous suspend of a job is completed. This event should not be raised for synchronous operation.

UnblockJobCompleted

This event should be raised whenever the asynchronous unblock of a blocked job is completed. This event should not be raised for synchronous operation.

Applies to