Creating customizable products in your Shopify store not only increase your customer satisfaction, it also increases your conversion rate. Here is a method to add custom options for your Shopify product and convert it into personalized product - Go to Shopify store page and search for "Advanced Product Customizer" app or you can directly the the Shopify app page by clicking on this link Advanced Product Customizer . Install Advanced Product Customizer app for free in your Shopify store From the application dashboard, enable to app embed block to complete the installation process Click "Product Custom Options" From the Shopify products list, select the product on which you want to add custom options. Advanced Product Customizer offers Image Swatch, Color Swatch, Text box, File Upload, Radio, Checkbox, Date Picker and more. Here is the a demo video for adding custom option for a Shopify product -
Sometimes we need to run tasks in parallel so that performance of any application can be improved. Here is the sample function to run task in parallel using ThreadPool.QueueUserWorkItem. These parallel task will be added to Queue and as soon as thread is available in thread pool task will be executed. So number of tasks running in parallel depends upon the number of threads available in threadpool. So, in case if system have multiple processors then more threads will be available in threadpool and more tasks can run in parallel.
C# Function to run tasks in parallel -
/// <summary>
/// Function to Executes a set of methods or tasks in parallel. The results
/// from each task or method in an array will be returned when all threads
/// have completed.No parameter and return value must not be provided with task or methods
/// </summary>
/// <param name="m"></param>
/// <returns></returns>
public static void ExecuteParallel (params Action[] tasks)
{
// Initialize the reset events to keep track of completed threads
ManualResetEvent [] resetEvents = new ManualResetEvent [tasks. Length];
// Launch each method in it's own thread
for (int i = 0; i < tasks . Length; i ++)
{
resetEvents [i ] = new ManualResetEvent (false );
ThreadPool .QueueUserWorkItem ( new WaitCallback ((object index) =>
{
int taskIndex = ( int) index ;
// Execute the method
tasks [taskIndex ]();
// Tell the calling thread that we're done
resetEvents [taskIndex ]. Set();
}), i );
}
// Wait for all threads to execute
WaitHandle .WaitAll ( resetEvents);
}
//Sample use
ExecuteParallel (() =>
{
CalculateArea (),
CalculateDistance (),
CalculateTime ()
});
I get error like ";" expected... am i calling this correctly ?? i am using VS2015 ExecuteParallel(() => {
ReplyDeletegetlogmod(),
getrolemod()
});
yes, this is the correct way to call it.
Deleteclass Program
ReplyDelete{
static int distance =100;
static int time = 100;
static int speed = 10;
static int length = 10;
static int breath = 9;
static void Main(string[] args)
{
ExecuteParallel(() =>
{
CalculateArea();
CalculateDistance();
CalculateTime();
});
Console.WriteLine("Hello World!");
Console.ReadLine();
}
private static void CalculateTime()
{
Console.WriteLine("time " + distance / speed);
}
private static void CalculateDistance()
{
Console.WriteLine("Distance="+ time*speed);
}
private static void CalculateArea()
{
Console.WriteLine("Area ="+ length*breath);
}
public static void ExecuteParallel(params Action[] tasks)
{
// Initialize the reset events to keep track of completed threads
ManualResetEvent[] resetEvents = new ManualResetEvent[tasks.Length];
// Launch each method in it's own thread
for (int i = 0; i < tasks.Length; i++)
{
resetEvents[i] = new ManualResetEvent(false);
ThreadPool.QueueUserWorkItem(new WaitCallback((object index) =>
{
int taskIndex = (int)index;
// Execute the method
tasks[taskIndex]();
// Tell the calling thread that we're done
resetEvents[taskIndex].Set();
}), i);
}
// Wait for all threads to execute
WaitHandle.WaitAll(resetEvents);
}
//Sample use
}
Implementation