anchor.diff:              args.Result <- box <| calculator.Get())
           worker.RunWorkerCompleted.Add(fun args ->
               args.Result |> should equal 1)
  -        worker.RunWorkerAsync()
  -    
  -    [<TestMethod>]
  -    member this.``MultiThreadedLazy should calсulate only once`` () = 
  -        let mutable count = 0
  -        let supplier = (fun () -> 
  -            count <- count + 1
  -            count |> should lessThan 2)
  -        let calculator = LazyFactory.CreateMultiThreadedLazy(supplier)     
  -        for i in 1 .. 100 do 
  -            calculator.Get()
  +        worker.RunWorkerAsync() 
       
       [<TestMethod>]
       member this.``Check LockFreeLaze`` () = 
  
positive.code:     
      [<TestMethod>]
      member this.``LockFreeLaze should calсulate only once`` () =
          let random = new System.Random()
          let supplier = (fun () -> random.Next(1, 100)) 
          let calculator = LazyFactory.CreateLockFreeLazy(supplier)
          let result = calculator.Get()
          ThreadPool.QueueUserWorkItem(fun object -> calculator.Get() |> should equal result) |> ignore
negative.code: open Homework_8.Task_1
  open System.ComponentModel
  open System.Threading
  open System
  
  [<TestClass>]
  type Task_1Tests () =
  