public long requestBalance(string sessionId) { context.RegisterSessionActivity(sessionId); var userInfo = context.getUserInfo(sessionId); if (userInfo == null) { return(-2); } context.Game.Log($"Requesting balance (sessionID: {sessionId}, account: {userInfo.AccountId}, seamless: {userInfo.Seamless}, userId: {userInfo.UserId}, accessPointId: {userInfo.AccessPointId})"); Task.Factory.StartNew(s => { var info = (UserInfo)s; context.Game.Log($"Refreshing balance (sessionID: {info.sessionId}, account: {info.AccountId}, userId: {info.UserId}, seamless: {info.Seamless}, balance: {info.Balance})"); info.RefreshBalance(); return(s); }, userInfo) .ContinueWith(t => { var info = (UserInfo)t.Result; context.Game.Log($"Balance refreshed (sessionID: {info.sessionId}, account: {info.AccountId}, userId: {info.UserId}, seamless: {info.Seamless}, balance: {info.Balance})"); SendBalanceChanged(info.sessionId, info.Balance, info.totalLoss); }); return(0); }