C# Examples
SetMarketsFromExchange
SetMarketsFromExchange — CCXT C# code example.
using ccxt;
using System.Diagnostics;
namespace examples;
partial class Examples
{
public static double GetMemoryUsage()
{
// Get current memory usage in MB
var process = Process.GetCurrentProcess();
var memoryInfo = process.WorkingSet64;
return memoryInfo / 1024.0 / 1024.0; // Convert to MB
}
public static async Task SetMarketsFromExchange()
{
Console.WriteLine($"Initial memory usage: {GetMemoryUsage():F2} MB");
// Create the first Binance exchange and load markets
var binance1 = new Binance();
Console.WriteLine($"Memory usage after creating binance1: {GetMemoryUsage():F2} MB");
await binance1.LoadMarkets();
Console.WriteLine($"Memory usage after loading markets in binance1: {GetMemoryUsage():F2} MB");
Console.WriteLine($"binance1.symbols loaded: {binance1.symbols?.Count ?? 0}");
// Create 9 more Binance exchanges
var exchanges = new List<Binance>();
for (int i = 2; i <= 10; i++)
{
var exchange = new Binance();
exchanges.Add(exchange);
Console.WriteLine($"Memory usage after creating binance{i}: {GetMemoryUsage():F2} MB");
}
// Use the first exchange to set markets for all others
foreach (var exchange in exchanges)
{
exchange.setMarketsFromExchange(binance1);
Console.WriteLine($"Memory usage after setting markets from exchange: {GetMemoryUsage():F2} MB");
}
// Verify that all exchanges now have markets
for (int i = 0; i < exchanges.Count; i++)
{
var exchange = exchanges[i];
Console.WriteLine($"binance{i + 2}.symbols loaded: {exchange.symbols?.Count ?? 0}");
}
// Close all exchanges
await binance1.Close();
foreach (var exchange in exchanges)
{
await exchange.Close();
}
Console.WriteLine($"Final memory usage after closing all exchanges: {GetMemoryUsage():F2} MB");
}
}