using System.Collections.Generic;
public string Key{get;set;}
public string Data{get;set;}
public override string ToString(){
return "chunkdata : " + Key;
public Loader(int demoSize){
Enumerable.Range(0,demoSize)
.Select(i => new Chunk(){Key=i.ToString(), Data= "data-"+i.ToString()})
IEnumerable<Chunk> chunks;
public IEnumerable<Chunk> GetChunks(){
int currentBatchSize = 0;
foreach(var chunk in chunks){
Console.WriteLine("chunk loaded {0} [Time={1}] ", chunk, DateTime.Now.Ticks);
public class ChunkGameObject{
public ChunkGameObject(Chunk data){
public override string ToString(){
return "gameobject chunk : " + _data;
public static void Main()
var loader = new Loader(20);
var gameObjects = loader.GetChunks()
.Select(chunk => new ChunkGameObject(chunk) );
foreach(var go in gameObjects){
var wait10Seconds = Enumerable.Range(0,10)