Cleaning up a session
If your application uses the using keyword,  which implements the
        IDisposable interface, the Session object is automatically cleaned up at
        the end of the using block. If your application does not implement
            using, then you need to release the session when you've completed the
        transaction.
The Session class contains a Dispose method, which cleans up
            the 1010data Insights Platform session when it is invoked. Depending on the login type
            that was used to create the Insights Platform session, there are a few different ways
            they might be cleaned up. If you are a single user logged in with
                LoginType.POSSESS, the session continues to run. If you're a single
            user logged in with LoginType.KILL or
            LoginType.NOKILL, the platform session is terminated. A SAM pool user's
            session is released back into the pool; it is never terminated before being
            released.
 Cleaning up a platform session when it is no longer needed is particularly important if you
            have multiple users sharing a pool of IDs (SAM pool). Waiting for the garbage collector
            to clean up Session objects may result in a pool that appears fully
            utilized, but is waiting for Session objects to be destroyed. For more
            information about SAM pools, see Shared Access Management (SAM).
The most efficient and effective way to release user IDs back to the pool is to invoke the
    Dispose method, either by explicitly calling it or employing
    using, which invokes it at the end of the block.
Via the using statement:
using System;
using TenTenSDK;
public class DocumentationExample {
    public static void PrintTable(Session testSession, String path) {
        Query exampleQuery = new Query(path,
                                       "<sel value=""(between(i_;1;10))""/>");
        using(Table resultTable = testSession.RunQuery(exampleQuery)) {
            Console.WriteLine(String.Join("\t", 
                              resultTable.Columns.Select(c => c.Info.Title)));
            foreach(Row r in resultTable.Rows) {
                Console.WriteLine(String.Join("\t", 
                                              r.Select(d => d.ToString())));
            }
        }
    }
    public static void Main() {
        Uri gateway = new Uri("https://www2.1010data.com/cgi-bin/gw.k");
        String user = "[USER_NAME]";
        String pwd = "[USER_PASSWORD]";
        String path = "[TABLE_PATH]";
        using(Session testSession = new Session(gateway, user, pwd,
                                                LoginType.POSSESS)) {
            PrintTable(testSession, path);
        }
    }
}
        [USER_NAME],
                        [USER_PASSWORD], and
                        [TABLE_PATH] are placeholders for valid
                Insights Platform user name, password, and table path.Explicitly calling the Dispose method:
using System;
using TenTenSDK;
public class DocumentationExample {
    public static void PrintTable(Session testSession, String path) {
        Query exampleQuery = new Query(path,
                                       "<sel value=""(between(i_;1;10))""/>");
        Table resultTable = testSession.RunQuery(exampleQuery);
        Console.WriteLine(String.Join("\t", 
                          resultTable.Columns.Select(c => c.Info.Title)));
        foreach(Row r in resultTable.Rows) {
            Console.WriteLine(String.Join("\t", 
                                          r.Select(d => d.ToString())));
        }
    }
    public static void Main() {
        Uri gateway = new Uri("https://www2.1010data.com/cgi-bin/gw.k");
        String user = "[USER_NAME]";
        String pwd = "[USER_PASSWORD]";
        String path = "[TABLE_PATH]";
        Session testSession = new Session(gateway, user, pwd,
                                          LoginType.POSSESS);
        PrintTable(testSession, path);
        testSession.Dispose();
    }
}
        [USER_NAME],
                        [USER_PASSWORD], and
                        [TABLE_PATH] are placeholders for valid
                Insights Platform user name, password, and table path.