WebPart.RenderWorkItemTimeout method
NOTE: This API is now obsolete.
Renders HTML in a Web Part when a work item has timed out.
Namespace: Microsoft.SharePoint.WebPartPages
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
'Declaration
<ObsoleteAttribute("Use Page.RegisterAsyncTask instead.")> _
Protected Overridable Sub RenderWorkItemTimeout ( _
writer As HtmlTextWriter _
)
'Usage
Dim writer As HtmlTextWriter
Me.RenderWorkItemTimeout(writer)
[ObsoleteAttribute("Use Page.RegisterAsyncTask instead.")]
protected virtual void RenderWorkItemTimeout(
HtmlTextWriter writer
)
Parameters
writer
Type: System.Web.UI.HtmlTextWriterAn HtmlTextWriter object that defines the output to render when a work item times out.
Remarks
If a Web Part does not override the RenderWorkItemTimeout method, a default system error message is rendered. The timeout setting is specified by the value of the Timeout attribute of the <WebPartWorkItem> tag that is contained within the <SharePoint> tag in the web.config file.
Examples
The following code example shows how to override the RenderWorkItemTimeout method.
Imports System
Imports System.Web.UI
Imports System.Threading
Imports System.Xml.Serialization
Imports Microsoft.SharePoint
Imports Microsoft.SharePoint.WebPartPages
Public Class WorkItemSample
Inherits Microsoft.SharePoint.WebPartPages.WebPart
Private log As String = ""
Private mre As New ManualResetEvent(False)
Public Sub New()
AddHandler Me.PreRender, AddressOf CreateThread
End Sub
Private Sub CreateThread(o As Object, e As EventArgs)
RegisterWorkItemCallback(AddressOf DoWork, Nothing)
End Sub
' Sleep for 4 seconds to simulate doing work
Private Sub DoWork(o As Object)
Thread.Sleep(4000)
log += "hello from the thread pool!<BR>"
mre.Set()
End Sub
Protected Overrides Sub RenderWebPart(output As HtmlTextWriter)
output.Write(log)
End Sub
Protected Overrides Sub RenderWorkItemTimeout(output As HtmlTextWriter)
output.Write("Timed out")
End Sub
End Class
using System;
using System.Web.UI;
using System.Threading;
using System.Xml.Serialization;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebPartPages;
namespace ExampleWebParts
{
public class WorkItemSample : Microsoft.SharePoint.WebPartPages.WebPart
{
string log="";
ManualResetEvent mre = new ManualResetEvent(false);
public WorkItemSample()
{
this.PreRender+=new EventHandler(CreateThread);
}
private void CreateThread(object o, EventArgs e)
{
RegisterWorkItemCallback(new WaitCallback(DoWork), null);
}
// Sleep for 4 seconds to simulate doing work
private void DoWork(object o)
{
Thread.Sleep(4000);
log+="hello from the thread pool!<BR>";
mre.Set();
}
protected override void RenderWebPart(HtmlTextWriter output)
{
output.Write(log);
}
protected override void RenderWorkItemTimeout(HtmlTextWriter output)
{
output.Write ("Timed out");
}
}
}