Resource resource = GetResource()
try
{
// Perform actions with the resource.
...
}
finally
{
// Resource might not been acquired, or already freed
if (resource != null)
((IDisposable)resource).Dispose();
}
kind: Pipeline
spec:
params:
- name: resource # pipeline level param
tasks:
- name: get-resource # get resource task initializes resource
taskRef:
name: get-resource
- name: process-resource
params:
- name: resource
value: $(tasks.get-resource.results.resource)
taskRef:
name: get-resource
finally:
- name: dispose-resource
taskRef:
name: dispose-resource
params:
- name: resource
value: $(tasks.get-resource.results.resource)
kind: Pipeline
spec:
params:
- name: resource # pipeline level param
tasks:
- name: get-resource # get resource task initializes resource
output:
- name: resource # name of the task result
value: $(params.resource) # task result resource is initializing pipeline param resource
taskRef:
name: get-resource
- name: process-resource
runAfter: [ get-resource ]
params:
- name: resource
value: $(params.resource)
taskRef:
name: get-resource
finally:
- name: dispose-resource
taskRef:
name: dispose-resource
params:
- name: resource
value: $(params.resource)