Exception designed not to be caught by tests (which may deliberately expect a timeout of another kind, for example).
This exception indicates that the scheduler timed out either in simulated time (e.g. a busy loop with a condition
never being satisfied) or in wall time (e.g. user code was waiting for a task which was never going to complete, due
to a deadlock).
An implementation ofISchedulerthat doesn't actually delay. This is useful for tests
which aren't interested in precise timing, but just want to be able to use a scheduler.
For more fine-grained control, useFakeScheduler.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[[["\u003cp\u003eThe latest version available is 4.10.0, with several previous versions also accessible, dating back to version 3.2.0.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eFakeClock\u003c/code\u003e class allows for the specification of custom times and increments, implementing the \u003ccode\u003eIClock\u003c/code\u003e interface.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eFakeScheduler\u003c/code\u003e class, designed to work with \u003ccode\u003eFakeClock\u003c/code\u003e, offers a simulated \u003ccode\u003eIScheduler\u003c/code\u003e environment, but is marked as experimental.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eNoOpScheduler\u003c/code\u003e class provides an \u003ccode\u003eIScheduler\u003c/code\u003e implementation that doesn't delay, which is useful for testing scenarios where precise timing is not relevant.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eFakeScheduler.SchedulerTimeoutException\u003c/code\u003e class is an exception that is designed to not be caught by tests, indicating a timeout in simulated time or wall time.\u003c/p\u003e\n"]]],[],null,["# Namespace Google.Api.Gax.Testing (4.10.0)\n\nVersion latestkeyboard_arrow_down\n\n- [4.10.0 (latest)](/dotnet/docs/reference/Google.Api.Gax/latest/Google.Api.Gax.Testing)\n- [4.8.0](/dotnet/docs/reference/Google.Api.Gax/4.8.0/Google.Api.Gax.Testing)\n- [4.4.0](/dotnet/docs/reference/Google.Api.Gax/4.4.0/Google.Api.Gax.Testing)\n- [4.3.1](/dotnet/docs/reference/Google.Api.Gax/4.3.1/Google.Api.Gax.Testing)\n- [4.2.0](/dotnet/docs/reference/Google.Api.Gax/4.2.0/Google.Api.Gax.Testing)\n- [4.0.0](/dotnet/docs/reference/Google.Api.Gax/4.0.0/Google.Api.Gax.Testing)\n- [3.2.0](/dotnet/docs/reference/Google.Api.Gax/3.2.0/Google.Api.Gax.Testing) \n\nClasses\n-------\n\n### [FakeClock](/dotnet/docs/reference/Google.Api.Gax/latest/Google.Api.Gax.Testing.FakeClock)\n\nImplementation of [IClock](/dotnet/docs/reference/Google.Api.Gax/latest/Google.Api.Gax.IClock) which allows manually-specified times\nand increments.\n\n### [FakeScheduler](/dotnet/docs/reference/Google.Api.Gax/latest/Google.Api.Gax.Testing.FakeScheduler)\n\nExperimental - please read remarks. Fake implementation of [IScheduler](/dotnet/docs/reference/Google.Api.Gax/latest/Google.Api.Gax.IScheduler), designed to work with\n[FakeClock](/dotnet/docs/reference/Google.Api.Gax/latest/Google.Api.Gax.Testing.FakeClock).\n\n### [FakeScheduler.SchedulerTimeoutException](/dotnet/docs/reference/Google.Api.Gax/latest/Google.Api.Gax.Testing.FakeScheduler.SchedulerTimeoutException)\n\nException designed not to be caught by tests (which may deliberately expect a timeout of another kind, for example).\nThis exception indicates that the scheduler timed out either in simulated time (e.g. a busy loop with a condition\nnever being satisfied) or in wall time (e.g. user code was waiting for a task which was never going to complete, due\nto a deadlock).\n\n### [NoOpScheduler](/dotnet/docs/reference/Google.Api.Gax/latest/Google.Api.Gax.Testing.NoOpScheduler)\n\nAn implementation of [IScheduler](/dotnet/docs/reference/Google.Api.Gax/latest/Google.Api.Gax.IScheduler) that doesn't actually delay. This is useful for tests\nwhich aren't interested in precise timing, but just want to be able to use a scheduler.\nFor more fine-grained control, use [FakeScheduler](/dotnet/docs/reference/Google.Api.Gax/latest/Google.Api.Gax.Testing.FakeScheduler)."]]