Perhaps you've seen the following note in BOL advising SQLCLR users to explicitly yield in their long-running CLR functions: "Long-running managed code that accesses data or allocates enough memory to trigger garbage collection will yield automatically.