yes  i would be nice to get rid of the setstateunsafe pattern  the issue is that if you have suspendall in a suspended thread state and use a scopedobjectaccess  it will deadlock  the setstateunsafe to runnable is a hack to get around this 