Share via


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

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");
        }
    }
}

See also

Reference

WebPart class

WebPart members

Microsoft.SharePoint.WebPartPages namespace