Hello
While IpSuperHttpClientChannel
doesn’t call the WM_PAINT
message by itself, it uses a WaitHandle.WaitOne
call while sending a database request message to the server.
However depending on application settings Windows messages are still processing during the WaitOne
call. This triggers the DevEx grid thread safety watchdog (it thinks that something tries to repaint it during the data request call).
The solution that worked for me in your testcase was to change
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
to
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[MTAThread]
static void Main()
You can read more about different apartments models in Apartments and Pumping in the CLR | Microsoft Learn
If for some reason you cannot change model from STA to MTA then the only resolution would be to try to use a different client channel type, namely IpHttpClientChannel
. Note that in this case you will NOT need to do any changes to the server except of setting the ServePlainHttpRequests
property of the server channel to true. This property will allow the SuperHttp server channel to serve both SuperHttp and plain Http request protocols
Regards