diff --git a/src/core/iomgr/pollset_windows.c b/src/core/iomgr/pollset_windows.c
index dd5301f5be9736392c22ffd9417d663a1175b0d8..798b6376358940cd70cd73d8d5ce61082308c033 100644
--- a/src/core/iomgr/pollset_windows.c
+++ b/src/core/iomgr/pollset_windows.c
@@ -152,6 +152,7 @@ void grpc_pollset_work(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
       g_active_poller = worker;
       gpr_mu_unlock(&grpc_polling_mu);
       grpc_iocp_work(exec_ctx, deadline);
+      grpc_exec_ctx_flush(exec_ctx);
       gpr_mu_lock(&grpc_polling_mu);
       pollset->is_iocp_worker = 0;
       g_active_poller = NULL;