C#调用gSoap服务端函数发现服务程序内存泄漏,怎么解决?

服务端采用c++ gSoap创建服务,头文件:
int contract__Test(char *arg);

实现代码,空函数

int contract__Test(struct soap *a, tchar *arg) {
    return SOAP_OK;
}

客户端采用C#,调用代码:

            while (true) //测试GSOAP内存泄漏
            {
                System.Threading.Thread.Sleep(1000);
                string flag = "STASvc";
                string mAddr = "http://localhost:9130/";
                var arg2 = new STASvc.Test();
                STASvc.ServicePortTypeClient mClient = null;
                mClient = new STASvc.ServicePortTypeClient(flag, mAddr);
                var rlt = mClient.Test(arg2);
            }

运行发现每调用一次,服务端C++程序占用内存递增0.1MB,这个问题怎么解决呢?

添加下面代码之后就可以了:
        soap_destroy(soap);
        soap_end(soap);
        soap_done(soap);
        soap_free(soap);

您好,您的这个while(True)不说内存泄漏,如果不进行延迟操作,很可能CPU跑满,至于内存泄漏问题,是因为你的代码中并没有释放,一直创建新类。